Sorting algorithms/Radix sort: Difference between revisions

Content added Content deleted
Line 897: Line 897:
<lang># Radix sort - sorts positive integers
<lang># Radix sort - sorts positive integers
#
#
subr sort
func sort . data[] .
radix = 16
radix = 256
max = 0
max = 0
for di range len data[]
for di range len data[]
Line 909: Line 909:
while pos <= max
while pos <= max
for i range radix
for i range radix
len buck[][i] 0
len buck[i][] 0
.
.
for di range len data[]
for di range len data[]
h = data[di] / pos mod radix
h = data[di] / pos mod radix
buck[][h] &= data[di]
buck[h][] &= data[di]
.
.
di = 0
di = 0
for i range radix
for i range radix
for j range len buck[][i]
for j range len buck[i][]
data[di] = buck[j][i]
data[di] = buck[i][j]
di += 1
di += 1
.
.
Line 926: Line 926:
.
.
data[] = [ 29 4 72 44 55 26 27 77 92 5 ]
data[] = [ 29 4 72 44 55 26 27 77 92 5 ]
call sort
call sort data[]
print data[]</lang>
print data[]</lang>