Skip to content
Related Articles
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