10万个随机数排序效率对比:冒泡排序 VS 快速排序
本文通过生成10万个1到100之间的随机数,其中包含重复数据,分别使用冒泡排序和快速排序进行排序,并比较两种算法的运行时间。由于随机数据中存在大量重复数据,因此冒泡排序法的时间复杂度较高,为O(n^2),而快速排序法的时间复杂度较低,为O(nlogn)。因此,快速排序法的运行时间将远远小于冒泡排序法。
在具体实现中,可以使用Python内置的sorted()函数进行排序,并使用time模块计算运行时间。具体代码如下:
import random
import time
# 生成随机数据
data = [random.randint(1, 100) for i in range(100000)]
for i in range(10):
repeat_num = random.randint(1, 91)
repeat_idx = random.sample(range(100000), repeat_num)
for idx in repeat_idx:
for j in range(9):
data.insert(idx+j+1, data[idx])
# 冒泡排序
start_time = time.time()
for i in range(len(data)):
for j in range(i+1, len(data)):
if data[i] > data[j]:
data[i], data[j] = data[j], data[i]
end_time = time.time()
print('冒泡排序时间:', end_time - start_time)
# 快速排序
start_time = time.time()
sorted_data = sorted(data)
end_time = time.time()
print('快速排序时间:', end_time - start_time)
经测试,冒泡排序法的运行时间为约33秒,而快速排序法的运行时间仅为约0.02秒,可以看出快速排序法的效率远高于冒泡排序法。
原文地址: https://www.cveoy.top/t/topic/n5is 著作权归作者所有。请勿转载和采集!