Qual è la complessità di tempo di C# 's List<T>.Sort()
Qual è la complessità di tempo di .NET list.sort()
Credo che sia O (n)
Ma dopo che ho cercato un sacco, non ho avuto alcun risultato accurato
Qual è la complessità di tempo di C# 's List<T>.Sort()
Qual è la complessità di tempo di .NET list.sort()
Credo che sia O (n)
Ma dopo che ho cercato un sacco, non ho avuto alcun risultato accurato
http://msdn.microsoft.com/en-us/library/b0zbh7b6.aspx
Questo metodo utilizza Array.Sort, che utilizza l'algoritmo QuickSort. Questa implementazione esegue un ordinamento instabile; cioè, se due elementi sono uguali, il loro ordine potrebbe non essere conservato. Al contrario, un ordinamento stabile conserva l'ordine degli elementi uguali.
In media, questo metodo è un'operazione O (n log n), dove n è Count; nel peggiore dei casi è un'operazione O (n^2).
In media, questo metodo è un O (n log n), dove n è Conteggio; nel peggiore dei casi è un'operazione O (n^2).
Questo perché utilizza Quicksort. Anche se questo è in genere O (n log n), as mentioned on Wikipedia, "Quicksort è spesso più veloce, in pratica, rispetto agli altri O (n log n) algoritmi"
migliore possibile asintoticamente è O (nlogn)
Aggiunta di alcune informazioni dal recente aggiunta al MSDN su questo argomento, per Framework 4.5, il metodo list.sort utilizza un diverso tipo di strategia a seconda del numero di elementi e partizioni.
Questo metodo utilizza il metodo Array.Sort quale si applica il ordinamento introspettivo come segue:
- Se la dimensione della partizione è meno di 16 elementi, utilizza un algoritmo di ordinamento per inserzione .
- Se il numero di partizioni supera 2 * LogN, dove N è l'intervallo dell'array di input, utilizza un algoritmo Heapsort.
- In caso contrario, utilizza un algoritmo Quicksort.
Questa implementazione esegue un ordinamento instabile; cioè, se due elementi sono uguali, il loro ordine potrebbe non essere conservato. Al contrario, un ordinamento stabile conserva l'ordine di elementi uguali.
In media, questo metodo è un'operazione O (n log n) , dove n è Count; nel peggiore dei casi è un'operazione O (n^2) .
Significa "ListSort" o "Elenco .Sort"? –
Lista .sort scusa –