欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

桶排序

程序员文章站 2022-05-12 16:32:20
...

工作原理

将数组分到有限数量的桶里,每个桶子里再个别排序。当要排序的数组内的数值是均匀分配的时候,桶排序使用线性时间 Θ(n)
桶排序是稳定的。
桶排序主要用于有大量重复数据和明确知道数据边界的情况下,进行排序。

def bucket_sort(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