排序算法 Python 实现
排序算法是计算机科学中的基础内容,Python 提供了多种方式实现常见排序算法。以下是一些经典排序算法的 Python 实现示例。
冒泡排序
冒泡排序通过重复地遍历列表,比较相邻元素并交换它们的位置来实现排序。
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
return arr
动画制作方法
使用可视化工具 在线工具如VisualGo、Algorithm Visualizer提供预制模板,输入Bubble Sort代码即可生成分步动画。修改参数可调整排序速度和数据量。
手动制作步骤
- 准备初始数据数组,如[5, 3, 8, 4, 2]。
- 逐帧绘制相邻元素比较过程:高亮当前比较的元素对,显示数值对比结果。
- 交换帧:用箭头动画表示元素位置交换,更新数组状态。
- 重复直到完成所有轮次,未排序部分与已排序部分用不同颜色区分。
代码实现动画 Python的matplotlib库可动态展示排序过程:
import matplotlib.pyplot as plt
import numpy as np
def bubble_sort_visual(data):
n = len(data)
fig, ax = plt.subplots()
for i in range(n):
for j in range(0, n-i-1):
bars = ax.bar(range(len(data)), data, color='lightblue')
bars[j].set_color('red')
bars[j+1].set_color('red')
plt.pause(0.5)
if data[j] > data[j+1]:
data[j], data[j+1] = data[j+1], data[j]
bars = ax.bar(range(len(data)), data, color='lightblue')
plt.pause(0.8)
ax.clear()
plt.show()
data = np.random.randint(1, 100, 10)
bubble_sort_visual(data)
关键帧设计
- 比较阶段:高亮对比中的元素为红色
- 交换阶段:用移动轨迹和位置更新展示交换
- 完成阶段:已排序元素渐变为绿色
- 每轮结束:显示当前轮次和剩余未排序范围
工具推荐