mysql排序快还是list排序快_快速排序到底有多快?

本文通过实验对比了冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序在不同数据规模下的性能。结果显示,快速排序在大规模数据集上表现最佳,而插入排序在小规模基本有序数据中较快。对于大数据集,快排配合插入排序的优化方案有效。
摘要由CSDN通过智能技术生成

上期为大家介绍了快速排序(Quicksort),有很多同学会问:快排是不是比之前几种排序都要快?它到底有多快?,那就让我们一起来做个小实验测试一下吧!

766417739c35c357e9c59564250502d7.png

一、实验设计

目前给大家介绍过了6种排序:冒泡排序、选择排序、

插入排序、希尔排序、归并排序、快速排序,并且在上期讲快速排续时给出了快排的优化方案:对于大数据集排序先使用快排,当分区达到一定小的时候使用插入排序,有同学就有疑惑:为什么当分区达到一定小时要用插入排序,这样真的会变快吗?

1.实验排序算法

冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序

2.数据集规模

随机生成一个数据集,数据个数从10,100,1000依次递增到10万个

3.比较方法

比较每个排序算法所用时长,多次测试,减少误差

4.数据特征

首先对随机数进行排序,看看哪个排序方法较快;然后再对“基本有序”的数据集排序,再比较这几种排序方法用时。

二、实验代码

使用randint随机生成整数

1.随机数排序

if __name__ == '__main__': # 生成n个0-10万的随机整型数据 n = 100000#n in [10, 100, 1000, 10000, 100000] arr = [randint(0, 100000) for i in range(n)]  start1 = time.time() # 使用deepcopy是为了排除电脑或程序自动优化或使用缓存等因素 bubble_sort(deepcopy(arr)) print("冒泡排序耗时:" + str(time.time() - start1)) start2 = time.time() selection_sort(deepcopy(arr)) print("选择排序耗时:" + str(time.t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值