桶排序

工作的原理是将数组分到有限数量的桶里,每个桶再个别排序。桶排序不是比较排序,它不受O(nlgn)下限的影响。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间O(n)

一个最简单情形的实现

# python
num_list = [5, 3, 5, 2, 8]

def bucket_sort(num_list):
  bucket_length = 10
  bucket = [0 for i in range(0, bucket_length + 1)]

  for item in num_list:
    bucket[item] += 1

  for i in range(0, bucket_length + 1):
    for j in range(0, bucket[i]):
      if bucket[i]:
        print i,

bucket_sort(num_list)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。