Skip to content

Commit

Permalink
Merge 00ef77c into e6df887
Browse files Browse the repository at this point in the history
  • Loading branch information
InnoFang committed Sep 3, 2018
2 parents e6df887 + 00ef77c commit d806f4d
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions algorithms/sort/radix_sort.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,21 @@
"""
radix sort
complexity: O(nk) . n is the size of input list and k is the digit length of the number
complexity: O(nk + n) . n is the size of input list and k is the digit length of the number
"""
def radix_sort(arr, simulation=False):
is_done = False
position = 1
max_number = max(arr)

iteration = 0
if simulation:
print("iteration",iteration,":",*arr)
print("iteration", iteration, ":", *arr)

while not is_done:
while position < max_number:
queue_list = [list() for _ in range(10)]
is_done = True

for num in arr:
digit_number = num // position % 10
queue_list[digit_number].append(num)
if is_done and digit_number > 0:
is_done = False

index = 0
for numbers in queue_list:
Expand All @@ -28,7 +25,7 @@ def radix_sort(arr, simulation=False):

if simulation:
iteration = iteration + 1
print("iteration",iteration,":",*arr)
print("iteration", iteration, ":", *arr)

position *= 10
return arr
return arr

0 comments on commit d806f4d

Please sign in to comment.