开公司如何做网站推广页面,邯郸市博物馆,兰州做网站企业,南宁房地产信息网读者大大们好呀#xff01;#xff01;!☀️☀️☀️ #x1f440;期待大大的关注哦❗️❗️❗️ #x1f680;欢迎收看我的主页文章➡️木道寻的主页 文章目录 #x1f525;前言#x1f680;冒泡排序python实现算法实现图形化算法展示 ⭐️⭐️⭐️总结 #x1f525;前… 读者大大们好呀!☀️☀️☀️ 期待大大的关注哦❗️❗️❗️ 欢迎收看我的主页文章➡️木道寻的主页 文章目录 前言冒泡排序python实现算法实现图形化算法展示 ⭐️⭐️⭐️总结 前言 冒泡排序算法的基本思想是通过重复遍历待排序的数列比较每对相邻元素如果它们的顺序错误(根据元素排序规则来说)就把它们交换过来。这个过程中较小的元素会像气泡一样逐渐“浮”到数列的顶端也就是数列的前端。这个过程会重复进行直到数列被排序完成
冒泡排序python实现 历史 关于冒泡排序算法的创造历史据称在1960年英国计算机科学家霍尔Tony Hoare在参加英国国家物理实验室的俄文机械翻译项目时为了提高翻译效率而提出了冒泡排序算法。这个算法以其稳定性和简单性而著称尽管这个说法存在但没有确凿的实证来支持这一点。 算法实现 1、冒泡排序代码python实现 def bubble_sort(arr):n len(arr)# 遍历所有数组元素for i in range(n):# Last i elements are already in placefor j in range(0, n-i-1):# 遍历数组从0到n-i-1# 交换如果元素大于下一个元素if arr[j] arr[j1]:arr[j], arr[j1] arr[j1], arr[j]2、运行结果 图形化算法展示 1、matplotlib图形化展示 代码如下
import matplotlib.pyplot as pltdef bubble_sort(arr):n len(arr)plt.ion() # 开启交互模式for i in range(n):for j in range(1, n-i):if arr[j-1] arr[j]:arr[j-1], arr[j] arr[j], arr[j-1] # 交换元素plt.clf() # 清除之前的图形plt.plot(arr, ro-) # 绘制当前数组状态plt.title(Bubble Sort Animation)plt.draw() # 绘制更新plt.pause(1) # 暂停一段时间以便观察# 创建一个待排序的数组
arr [64, 34, 25, 12, 22, 11, 90]
# arr []
# num int(input(请输入需要排序的数字个数))
# print(请依次输入需要排序的数字\n)
# for i in range(num):
# arr.append(int(input(f第{i1}个数:)))
# print(原始数组)
# print(arr)
#
# bubble_sort(arr)
# print(排序后的数组)
# print(arr)# 原始数组的图形绘制
plt.figure(figsize(10, 5))
plt.plot(arr, ro-, markersize8)
plt.title(original data)
plt.grid(True)
plt.show()
plt.ioff()# 开始冒泡排序并动态绘制
bubble_sort(arr.copy()) # 使用数组的副本以保留原始数组用于比较# 排序后的数组图形绘制
plt.plot(arr, go-, markersize8) # 使用绿色表示排序后的数组
plt.title(Sorting raw data)
plt.grid(True)
plt.show()
plt.ioff() # 关闭图形交互模式
图形显示结果
⭐️⭐️⭐️总结
冒泡排序Bubble Sort是一种简单直观的排序算法它通过重复遍历待排序的数列比较每对相邻元素的大小并在必要时交换它们的位置。以下是冒泡排序的几个关键点总结
1️⃣算法原理 通过相邻元素的比较和交换使得每一轮遍历后数列中的最大或最小元素“冒泡”到它应该在的位置。
2️⃣稳定性 冒泡排序是一种稳定的排序算法因为它不会改变相同元素之间的相对顺序。
3️⃣时间复杂度 最好情况已经是排序状态O(n)只需要遍历一次就发现没有元素交换立即结束。 最坏情况完全逆序O(n^2)需要进行n-1次遍历。 平均情况O(n^2)。
4️⃣空间复杂度 空间复杂度为O(1)因为它是一种原地排序算法不需要额外的存储空间。 实现方式
可以使用两次嵌套循环实现外层循环控制遍历次数内层循环进行相邻元素的比较和交换。 ✈️✈️✈️如果喜欢这篇文章的话 大大们可以动动发财的小手: 点赞:收藏:⭐️评论:✍️