Mentre leggo un libro su "Algorithm Analysis", ho trovato count_sort
Algorithm.
Tuttavia, ho letto altrove che "Ordinamento / unione veloce" sono gli algoritmi di ordinamento migliori e più efficienti. Ho trovato questo confuso perché la complessità di count_sort
è O(n+k)
, che è migliore di Mergesort e Quicksort che sono O (n ln n).
La mia domanda:
-
Qual è il problema con questo Algoritmo di ordinamento?
-
Quali sono i migliori algoritmi di ordinamento?
def count_sort(seq): b, c = [], defaultdict(list) for x in seq: c[x].append(x) for k in range(min(c), max(c)+1): b.extend(c[k]) return b