Skip to content

Commit

Permalink
added radix sort in python (tornado-12#102)
Browse files Browse the repository at this point in the history
* added bucket sort in c++

* added counting sort in c++

* added radix sort in python

Co-authored-by: satks <[email protected]>
  • Loading branch information
sathiyajith and satks authored Oct 4, 2021
1 parent 81dddb1 commit b1ef394
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions Python/RadixSort.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Python program for implementation of Radix Sort

# A function to do counting sort of arr[] according to
# the digit represented by exp.
def countingSort(arr, exp1):

n = len(arr)

# The output array elements that will have sorted arr
output = [0] * (n)

# initialize count array as 0
count = [0] * (10)

# Store count of occurrences in count[]
for i in range(0, n):
index = (arr[i]/exp1)
count[int((index)%10)] += 1

# Change count[i] so that count[i] now contains actual
# position of this digit in output array
for i in range(1,10):
count[i] += count[i-1]

# Build the output array
i = n-1
while i>=0:
index = (arr[i]/exp1)
output[ count[ int((index)%10) ] - 1] = arr[i]
count[int((index)%10)] -= 1
i -= 1

# Copying the output array to arr[],
# so that arr now contains sorted numbers
i = 0
for i in range(0,len(arr)):
arr[i] = output[i]

# Method to do Radix Sort
def radixSort(arr):

# Find the maximum number to know number of digits
max1 = max(arr)

# Do counting sort for every digit. Note that instead
# of passing digit number, exp is passed. exp is 10^i
# where i is current digit number
exp = 1
while max1/exp > 0:
countingSort(arr,exp)
exp *= 10

# Driver code to test above
arr = [ 170, 45, 75, 90, 802, 24, 2, 66]
radixSort(arr)

for i in range(len(arr)):
print(arr[i])

0 comments on commit b1ef394

Please sign in to comment.