0
点赞
收藏
分享

微信扫一扫

Python-Flet实现可视化的冒泡排序

1:效果图

Python-Flet实现可视化的冒泡排序_冒泡排序


2:代码解释

这段代码实现了一个冒泡排序算法的可视化界面。具体功能如下:

  • bubble_sort 函数:实现了冒泡排序算法,每次交换元素后调用 update_display 更新显示,并暂停 0.5 秒以便观察排序过程。
  • update_display 函数:更新界面上的文本显示,显示当前数组的状态。
  • start_sorting 函数:初始化一个数组并调用 bubble_sort 开始排序。
  • main 函数:创建一个 Flet 应用程序,设置页面标题和布局,添加文本和按钮控件,并绑定按钮点击事件。

3:代码

importfletasft
importtime

defbubble_sort(arr, page):
n=len(arr)
foriinrange(n):
swapped=False
forjinrange(0,n-i-1):
ifarr[j] > arr[j+1]:
 arr[j], arr[j+1] = arr[j+1], arr[j]
swapped=True
update_display(arr, page)
 time.sleep(0.5)#暂停一段时间,以便观察排序过程
if notswapped:
break

defupdate_display(arr, page):
 text.value =" ".join(map(str, arr))
 page.update()

defstart_sorting(e):
arr= [64,34,25,12,22,11,90]
 bubble_sort(arr, e.page)

defmain(page:ft.Page):
globaltext
 page.title ="冒泡排序可视化"
page.vertical_alignment = ft.MainAxisAlignment.CENTER
 page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

 text = ft.Text(value="64 34 25 12 22 11 90",size=40)
start_button= ft.ElevatedButton(text="开始排序",on_click=start_sorting)

 page.add(
 ft.Column(
 [
 text,
start_button
],
alignment=ft.MainAxisAlignment.CENTER,
horizontal_alignment=ft.CrossAxisAlignment.CENTER
 )
 )

if__name__ =="__main__":
 ft.app(target=main)

举报

相关推荐

0 条评论