2012-08-14 8 views

risposta

3

Un set non è ordinato e non ha indici per gli elementi in esso contenuti. Quindi un metodo binarySearch() che restituisce l'indice dell'elemento non ha senso.

8

La ricerca binaria implica un contenitore ordinato. Un set è non ordinato (HashSet), nel qual caso una ricerca binaria non può essere eseguita, o è ordinata (TreeSet), nel qual caso la sua operazione di ricerca è già efficiente come una ricerca binaria (ad esempio O(Log2(N))).

4

In questo caso, una ricerca binaria funzionerà solo se l'Elenco viene ordinato e ordinato. cioè non funziona per tutte le liste, solo quelle pre-ordinate.

Un set non è ordinato e potrebbe non essere ordinato.

se il set è ordinato, è possibile utilizzare uno dei metodi di NavigableSet

5

La ricerca binaria lavora sulla raccolta ordinata. Set non ordinato.

+0

Grazie a tutti per la rapida risposta. Ho capito da tutte le risposte che binarySearch può essere utilizzato solo sulla raccolta ordinata. Ma cosa succede se voglio usare per TreeSet? Non dovrebbe essere possibile? C'è qualche alternativa per cercare un oggetto dal Set che è simile alla ricerca binaria? –

+0

È possibile convertire il set in una raccolta ordinata. –

+1

Un 'TreeSet' può essere ordinato, ma non è possibile fare riferimento ai suoi elementi tramite un indice. –

Problemi correlati