# Python Program for Radix Sort

• Difficulty Level : Easy
• Last Updated : 18 Jan, 2022

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.

## Python3

 `# 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],end``=``" "``)` `# 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`