5.10 bisect -- Algoritmo di bisezione di array

Questo modulo da la possibilit� di mantenere una lista sempre ordinata senza la necessita di effettuare l'ordinamento dopo ogni inserzione. Per lunghe liste di elementi con operazioni di confronto dispendiose, grazie a questo modulo si pu� ottenere un miglioramento rispetto all'approccio pi� comune. Il modulo � chiamato bisect poich� internamente utilizza un algoritmo di bisezione. Il codice sorgente pu� essere molto utile come esempio di funzionamento dell'algoritmo (le condizioni al contorno vengono gi� definite!).

Vengono fornite le seguenti funzioni:

bisect_left( list, item[, lo[, hi]])
Individua l'esatto punto di inserimento dell'elemento item nella lista list in modo da mantenere l'ordine. I parametri lo e hi possono venire utilizzati per specificare il sotto insieme della lista da considerare; se non specificati, viene utilizzata l'intera lista. Se item � gi� presente in list, il punto di inserimento si trover� prima (a sinistra) di ogni voce esistente di quell'elemento. Il valore restituito � utilizzabile come primo parametro del metodo list.insert(). Si presuppone che list sia gi� ordinata. Nuovo nella versione 2.1.

bisect_right( list, item[, lo[, hi]])
Simile a bisect_left(), ma restituisce un punto di inserzione dopo (a destra) ogni voce esistente di item in list. Nuovo nella versione 2.1.

bisect( ...)
Sinonimo di bisect_right().

insort_left( list, item[, lo[, hi]])
Inserisce item in list in modo da mantenere l'ordine. È equivalente a list.insert(bisect.bisect_left(list, item, lo, hi), item). Si presuppone che list sia gi� ordinata. Nuovo nella versione 2.1.

insort_right( list, item[, lo[, hi]])
Simile a insort_left(), ma item viene inserito in list dopo tutte le occorrenze di item presenti. Nuovo nella versione 2.1.

insort( ...)
Sinonimo di insort_right().



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.