Radix sort antar at input er
- Må ha en stabil sub-algoritme for å fungere. Dvs at den underliggende algoritmen som sorterer underlistene må være stabil.
-
Radix sort slår counting sort hvis antallet elementer
$n \ll k$ forskjellige elementer. - In-place: Nei
- Stabil: Ja
Best case | Average case | Worst case | Minne |
---|---|---|---|
der
def modified_counting_sort(A, B, idx): # A = Usortert liste. B = Liste hvor resultatet skal puttes. idx = indeksen som sorteringen skal basere seg på
k = 10
C = [0]*(k+1)
for i in range(len(A)):
index = int(str(A[i])[idx])
C[index] += 1
for i in range(1, k+1):
C[i] += C[i-1]
for i in range(len(A)-1, -1, -1):
index = int(str(A[i])[idx])
B[C[index]-1] = A[i]
C[index] -= 1
return B
def radix_sort(A, d):
for i in range(d-1, -1, -1):
B = [0]*len(A)
A = modified_counting_sort(A,B,i)
return A