PHP前端开发

使用Python实现基数排序算法原理的实例

百变鹏仔 1天前 #Python
文章标签 基数

基数排序算法是桶排序算法的一种,是对基于相同位置的值,进行分组排序。可能这么说有点不好理解,可以看下面的基数排序算法原理实例。

基数排序算法原理实例

指定数组[121,432,564,23,1,45,788],将数组进行基数排序,如图:

立即学习“Python免费学习笔记(深入)”;

立即学习“Python免费学习笔记(深入)”;

立即学习“Python免费学习笔记(深入)”;

立即学习“Python免费学习笔记(深入)”;

先进行个位数值的排序,再进行十位数值的排序,最后再排序百位数值,最后输出经过排序后的数组为[001,023,045,121,432,564,788]

Python代码实现基数排序算法

def countingSort(array, place):    size = len(array)    output = [0] * size    count = [0] * 10    for i in range(0, size):        index = array[i] // place        count[index % 10] += 1     for i in range(1, 10):        count[i] += count[i - 1]    i = size - 1    while i >= 0:        index = array[i] // place        output[count[index % 10] - 1] = array[i]        count[index % 10] -= 1        i -= 1    for i in range(0, size):        array[i] = output[i]def radixSort(array):    # Get maximum element    max_element = max(array)    place = 1    while max_element // place > 0:        countingSort(array, place)        place *= 10data = [121, 432, 564, 23, 1, 45, 788]radixSort(data)print(data)