本文通过生成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秒,可以看出快速排序法的效率远高于冒泡排序法。

10万个随机数排序效率对比:冒泡排序 VS 快速排序

原文地址: https://www.cveoy.top/t/topic/n5is 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录