Python实现桶排序

本文深入探讨了桶排序,一种快速但资源密集的排序算法。通过详细解释其工作原理,即通过统计元素出现次数来排序,文章展示了桶排序在特定场景下的高效性和局限性。并提供了Python实现代码,用于创建随机数列并进行排序,直观地演示了桶排序的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

桶排序

思想:

桶排序也叫计数排序,

就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出数据集里面的元素。

总结:

1.桶排序的优点就是特别快,真的是特别快!特别快!特别块!

2.缺点就是特别耗资源,如果数据取值的范围是0---10^10, 就要申请一个大小为10^10的数组,想想这得多耗内存空间。

import random
# 计时器:
import time
def cal_time(func):
    def wapper(*args,**kwargs):
        start_time = time.time()
        result = func(*args,**kwargs)
        end_time = time.time()
        print("%s running time is %s s:" %(func.__name__,end_time-start_time))
        return result
    return wapper
@cal_time
def count_sort(li,max_num):
    count = [ 0 for i in range(max_num+1)]
    for num in li :
        count[num] += 1
    i = 0
    for num,m in enumerate(count):
        for j in range(m):
            li[i] = num
            i += 1
# 创建一个随机数列
data = []
for i in range(1000):
    data.append(random.randint(0,100))
print(data)

count_sort(data,100)
print(data)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值