Skip to content

Commit 17a6d1c

Browse files
InnoFangashwek
authored andcommitted
Fix sorts/radix_sort (TheAlgorithms#338)
1 parent faf16d7 commit 17a6d1c

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

sorts/radix_sort.py

+20-22
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
11
def radixsort(lst):
2-
RADIX = 10
3-
maxLength = False
4-
tmp , placement = -1, 1
2+
RADIX = 10
3+
placement = 1
54

6-
while not maxLength:
7-
maxLength = True
8-
# declare and initialize buckets
9-
buckets = [list() for _ in range( RADIX )]
5+
# get the maximum number
6+
max_digit = max(lst)
107

11-
# split lst between lists
12-
for i in lst:
13-
tmp = int((i / placement) % RADIX)
14-
buckets[tmp].append(i)
8+
while placement < max_digit:
9+
# declare and initialize buckets
10+
buckets = [list() for _ in range( RADIX )]
1511

16-
if maxLength and tmp > 0:
17-
maxLength = False
12+
# split lst between lists
13+
for i in lst:
14+
tmp = int((i / placement) % RADIX)
15+
buckets[tmp].append(i)
1816

19-
# empty lists into lst array
20-
a = 0
21-
for b in range( RADIX ):
22-
buck = buckets[b]
23-
for i in buck:
24-
lst[a] = i
25-
a += 1
17+
# empty lists into lst array
18+
a = 0
19+
for b in range( RADIX ):
20+
buck = buckets[b]
21+
for i in buck:
22+
lst[a] = i
23+
a += 1
2624

27-
# move to next
28-
placement *= RADIX
25+
# move to next
26+
placement *= RADIX

0 commit comments

Comments
 (0)