Skip to content
Related Articles

Related Articles

Improve Article
Python Program for Radix Sort
  • Difficulty Level : Easy
  • Last Updated : 30 Dec, 2020

The Radix Sort Algorithm 
1) Do the following for each digit i where i varies from the least significant digit to the most significant digit. 

  • Sort input array using counting sort (or any stable sort) according to the i\’th digit. 
     
     

Python




# 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]),
  
# This code is contributed by Mohit Kumra
# This code is updated by Sudeep Saxena(saxenasudeepcse@gmail.com) on July 9, 2020

Output:

2 24 45 66 75 90 170 802

Please refer complete article on Radix Sort for more details!




My Personal Notes arrow_drop_up
Recommended Articles
Page :