给出代码 python生成一个长度为100的随机数列表,使用快速排序对数组进行重新排序,并且对排序过程的每一步通过动画进行演示
时间: 2023-03-12 08:48:38 浏览: 159
随机数排序_20个随机数_数组排序_源码
5星 · 资源好评率100%
import random
import matplotlib.pyplot as plt
# 生成随机数列表
list_length = 100
list_original = [random.randint(0, list_length) for i in range(list_length)]
# 快速排序算法
def quick_sort(list):
if len(list) < 2:
return list
else:
pivot = list[0]
less = [i for i in list[1:] if i <= pivot]
greater = [i for i in list[1:] if i > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)
# 动画演示排序过程
def draw_animation(list):
plt.clf()
x = [i for i in range(list_length)]
plt.bar(x, list)
plt.pause(0.01)
plt.show()
# 排序
list_sorted = quick_sort(list_original)
# 动画演示
for i in range(len(list_sorted)):
draw_animation(list_sorted[:i + 1])
阅读全文