给出代码,python生成一个长度为100的随机数列表,使用快速排序对数组进行重新排序,并且对排序过程 通过动画进行演示
时间: 2023-03-12 16:44:44 浏览: 91
import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation# 生成一个长度为100的随机数列表
list_a = []
for i in range(100):
list_a.append(random.randint(0,1000))# 定义快速排序函数
def quicksort(list_a):
# 划分阶段
if len(list_a) < 2:
return list_a
else:
pivot = list_a[0]
less = [i for i in list_a[1:] if i <= pivot]
greater = [i for i in list_a[1:] if i > pivot]
# 排序
return quicksort(less) + [pivot] + quicksort(greater)# 动画演示排序过程
def update(list_a, rects):
for rect, val in zip(rects, list_a):
rect.set_height(val)fig, ax = plt.subplots()
rects = ax.bar(range(len(list_a)), list_a, align='edge', color='orange')
ax.set_xlim(0, len(list_a))
ax.set_ylim(0, max(list_a) + 10)sort_ani = animation.FuncAnimation(fig, func=update,
fargs=(rects, quicksort(list_a)),
frames=len(list_a), interval=1,
repeat=False)plt.show()
阅读全文