使用随机数生成一个500个整数的列表,通过基准测试分析排序算法(冒泡排序,选择排序,插入排序,希尔排序,归并排序,快速排序),在执行速度上有什么不同
希尔排序,归并排序,快速排序 速度相比其它的更快些 时间复杂度为nlog(n) 其它三种的时间复杂度要n平方
可以跑一跑试一试
import random
# 生成一个包含 500 个随机整数的列表
random_list = [random.randint(1, 1000) for _ in range(500)]
print(random_list)
import timeit
def bubble_sort(lst):
for i in range(len(lst) - 1):
for j in range(len(lst) - 1 - i):
if lst[j] > lst[j + 1]:
lst[j], lst[j + 1] = lst[j + 1], lst[j]
return lst
# 测量冒泡排序的运行速度
print(timeit.timeit(lambda: bubble_sort(random_list), number=1))
def selection_sort(lst):
for i in range(len(lst) - 1):
min_index = i
for j in range(i + 1, len(lst)):
if lst[j] < lst[min_index]:
min_index = j
lst[i], lst[min_index] = lst[min_index], lst[i]
return lst
# 测量选择排序的运行速度
print(timeit.timeit(lambda: selection_sort(random_list), number=1))
这篇文章也做了整理