冒泡排序彩柱图动态演示_python bubble sort dynamic show

"""
   冒泡排序彩柱图演示.py

"""

from turtle import *
from random import randint
from time import sleep

本文隐藏内容 登陆 后才可以浏览
if __name__=="__main__": width,height=800,800 screen = Screen() screen.colormode(255) screen.setup(width,height) screen.title("冒泡排序动态演示,作者:李兴球 2018/10/1") screen.delay(0) xcors = [x for x in range(40-width//2,width//2-20,40) ] columns = [Column(x) for x in xcors ] # 生成所有柱子 length = len(columns) while True: 排序了吗 = False # 描述是否交换了数据的标志 for i in range(0,length-1 ): # 由于越往后,越不要排这么多次数了. c1 = columns[i] # 代表前面柱子 c2 = columns[i + 1] # 代表后面柱子 if c1.scale > c2.scale: # 如果前面的柱子更高,则交换位置 x1 = c1.xcor() # 保留前面柱子c1的x坐标 x2 = c2.xcor() # 保留后面柱子c2的x坐标 columns[i] = c2 # 让前面的柱子赋值为后面柱子 columns[i+1] = c1 # 让后面的柱子赋值为前面柱子 columns[i].setx(x1) # 交换列表中项目后,重新设置x坐标 columns[i+1].setx(x2) # 交换列表中项目后,重新设置x坐标 排序了吗 = True screen.update() sleep(0.1) length = length - 1 if 排序了吗 == False:break # 如果一次都没有排序,则退出while循环

python冒泡排序动态演示