登录
首页 >  文章 >  python教程

Python实现基数排序算法的原理及示例

来源:网易伏羲

时间:2024-02-01 15:23:10 323浏览 收藏

从现在开始,努力学习吧!本文《Python实现基数排序算法的原理及示例》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

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

基数排序算法原理实例

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

基数排序算法原理实例 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 *= 10

data = [121, 432, 564, 23, 1, 45, 788]
radixSort(data)
print(data)

以上就是《Python实现基数排序算法的原理及示例》的详细内容,更多关于算法的概念的资料请关注golang学习网公众号!

声明:本文转载于:网易伏羲 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>