python冒泡排序
1、什么是冒泡排序
Bubble Sort 是最简单和通用的排序方法,基本思想是:在待排序的一组数据中,将相邻的两个数进行比较,若前面的数比后面的数大,就交换两个数,否则不交换;如此下去,直至完成最终排序。由此可得,在排序的过程中,大的数据往下沉,小的数据往上浮,就像气泡一样。于是将这种算法形象地称为冒泡排序
2、排序过程剖析
假设有n个数,对相邻的数比较需要进行n-1轮的排序。以Data1 = [3,7,6,5,9,2,8]为例
第1轮 比较n-1次即7-1=6次
3、7不换位 [3,7,6,5,9,2,8]
6、7换位 [3,6,7,5,9,2,8]
7、5换位 [3,6,5,7,9,2,8]
7、9不换位 [3,6,5,7,9,2,8]
9、2换位 [3,6,5,7,2,9,8]
9、8换位 [3,6,5,7,2,8,9]
至此,最大的数9已经换到最后一位,下一轮排序无需再比较最后1个数
第2轮 比较n-2次即7-2=5次
3、6不换位 [3,6,5,7,2,8,9]
6、5换位 [3,5,6,7,2,8,9]
6、7不换位 [3,5,6,7,2,8,9]
7、2换位 [3,5,6,2,7,8,9]
7、8不换位 [3,5,6,2,7,8,9]
至此,第二大的数8已经换到倒数第二位,下一轮排序无需再比较最后2个数
第3轮 比较n-3次即7-3=4次
3、5不换位 [3,5,6,2,7,8,9]
5、6不换位 [3,5,6,2,7,8,9]
6、2换位 [3,5,2,6,7,8,9]
6、7不换位 [3,5,2,6,7,8,9]
至此,第三大的数7已经换到倒数第三位,下一轮排序无需再比较最后3个数
第4轮 比较n-4次即7-4=3次
3、5不换位 [3,5,2,6,7,8,9]
5、2换位 [3,2,5,6,7,8,9]
5、6不换位 [3,2,5,6,7,8,9]
至此,第四大的数6已经换到倒数第四位,下一轮排序无需再比较最后4个数
第5轮 比较n-5次即7-5=2次
3、2换位 [2,3,5,6,7,8,9]
3、5不换位 [2,3,5,6,7,8,9]
至此,第五大的数5已经换到倒数第五位,下一轮排序无需再比较最后5个数
第6轮 比较1次
2、3不换位 [2,3,5,6,7,8,9]
至此,排序完毕
(第i轮 比较n-i次即7-i次)
3、用python实现冒泡排序
def Bubble_Sort(num):
'''
:param num: 需要排序的数组
:return: 排序结果
'''
n = len(num)
for i in range(n-1):
for j in range(n-1-i):
if num[j]>num[j+1]:
num[j],num[j+1] = num[j+1],num[j]
print("第{}次比较".format(j+1),num)
print("-------------第{}轮排序----------".format(i+1), num)
return num
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现