美文网首页排序算法(python)
python实现桶排序(BucketSort)

python实现桶排序(BucketSort)

作者: 阿旭123 | 来源:发表于2020-12-10 15:21 被阅读0次

    python实现【桶排序】(BucketSort)

    算法原理及介绍

    桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。

    桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排)。

    算法过程描述

    1. 设置一个定量的数组当作空桶;

    2. 遍历输入数据,并且把数据一个一个放到对应的桶里去;

    3. 对每个不是空的桶进行排序;

    4. 从不是空的桶里把排好序的数据拼接起来。

    算法排序图解如下

    下图分为10个桶,每一个桶的范围为【iX10, (i+1)X10】,将每一个数放入指定桶的范围内。

    桶排序.png

    python实现代码

    def bucketSort(nums):
        # 选择一个最大的数
        max_num = max(nums)
        # 创建一个元素全是0的列表, 当做桶
        bucket = [0] * (max_num + 1)
        # 把所有元素放入桶中, 即把对应元素个数加一
        for i in nums:
            bucket[i] += 1
        # 存储排序好的元素
        sort_nums = []
        # 取出桶中的元素
        for j in range(len(bucket)):
            if bucket[j] != 0:
                for y in range(bucket[j]):
                    sort_nums.append(j)
        return sort_nums
    

    如果喜欢作者,欢迎点赞、收藏及关注,谢谢!
    点击下面相应的链接即可查看各个算法的详细介绍及python实现方法

    1. 冒泡排序(BubbleSort)
    2. 选择排序(SelectionSort)
    3. 插入排序(InsertSort)
    4. 归并排序(MergeSort)
    5. 快速排序(QuickSort)
    6. 堆排序(Heap Sort)
    7. 计数排序(Count Sort)
    8. 桶排序(Bucket Sort)
    9. 基数排序(Radix Sort)
    10. 希尔排序(Shell Sort)

    相关文章

      网友评论

        本文标题:python实现桶排序(BucketSort)

        本文链接:https://www.haomeiwen.com/subject/iiqrgktx.html