Er zijn veel verschillende algemene sorteeralgoritmen die kunnen worden gebruikt. In dit geval is de belangrijkste overweging echter dat alle te sorteren elementen tot de set behoren (0,1).
Zoals andere respondenten hebben geantwoord, is er een triviale implementatie.
def radix_sort(a):
slist = [[],[]]
for elem in a:
slist[elem].append(elem)
return slist[0] + slist[1]
print radix_sort([0,0,1,0,1,1,0])
Er moet worden opgemerkt dat dit een specifieke implementatie is van de Radix-sortering . En dit kan eenvoudig worden uitgebreid als de elementen van de lijst die moet worden gesorteerd tot een gedefinieerde beperkte reeks behoren.
def radix_sort(a, elems):
slist = {}
for elem in elems:
slist[elem] = []
for elem in a:
slist[elem].append(elem)
nslist = []
for elem in elems:
nslist += slist[elem]
return nslist
print radix_sort([2,0,0,1,3,0,1,1,0],[0,1,2,3])
Geen sorteer()
of sorteer()
of tel()
functie. Op)