像插入排序这样的算法可以通过可视化轻松理解。在本文中,实现了一个用于可视化插入排序算法的程序。
图形用户界面(GUI)是使用 pygame 库在 Python 中实现的。
方法:
观察:
从插入排序可视化中,我们可以清楚地看到,与合并排序或快速排序等其他排序算法相比,插入排序非常慢。
示例:
输入:
按“Enter”键执行可视化。
按“R”键生成新数组。
输出:
初始:
排序:
最终:
在运行以下程序之前请务必安装pygame库。
以下是上述可视化工具的实现:
# Python 实现# 排序可视化工具:插入排序
# 进口
导入pygame
随机导入
导入时间
pygame.font.init()
开始时间 = time.time()
# 总窗口
屏幕 = pygame.display.set_mode(
(900, 650)
)
# 标题和图标
pygame.display.set_caption(
“排序可视化器”
)
# 取消注释下面的设置行
# 增加可视化器的图标
# img = pygame.image.load('sorticon.png')
# pygame.display.set_icon(img)
# 要运行的布尔变量
# while循环中的程序
运行=真
# 窗口大小和一些缩写
宽度=900
长度 = 600
数组=[0]*151
arr_clr =[(0, 204, 102)]*151
clr_ind = 0
clr =[(0, 204, 102), (255, 0, 0), \
(0, 0, 153), (255, 102, 0)]
fnt = pygame.font.SysFont("comicsans", 30)
fnt1 = pygame.font.SysFont("comicsans", 20)
# 生成新数组的函数
defgenerate_arr():
对于范围 (1, 151) 内的 i:arr_clr[i]= clr[0]
数组[i]= random.randrange(1, 100)
# 最初生成一个数组
生成_arr()
# 填充函数
# 窗口上的更新
def 填充():
屏幕.填充((255, 255, 255))
画()
pygame.display.update()
pygame.time.delay(10)
# 排序算法:插入排序
def 插入排序(数组):
对于范围内的 i(1,len(数组)):
pygame.event.pump()
重新填充()
键=数组[i]
arr_clr[i]= clr[2]
j = i-1
当 j>= 0 且 key
输出:
如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。