冒泡排序算法详解:原理、实现与复杂度分析
创作时间:
2025-01-22 09:23:28
作者:
@小白创作中心
冒泡排序算法详解:原理、实现与复杂度分析
冒泡排序是一种简单直观的比较型排序算法,通过重复遍历待排序序列、比较相邻元素并交换位置(若顺序错误),最终将序列按指定顺序排列。其核心思想是让较大的元素逐渐“冒泡”到序列末尾。
算法步骤
- 从第一个元素开始,依次比较相邻两个元素,如果前一个大于后一个,则交换它们的位置。
- 对每一对相邻元素重复上述过程,直到最后一对元素比较完成,此时最大元素会移动到数组末尾。
- 重复以上步骤,但每次遍历时减少已排序部分的比较次数,直至整个数组有序。
例如,对于序列 [4, 3, 8, 1] 进行升序排序:
- 第一轮:(4,3), (4,8), (8,1),得到 [3, 4, 1, 8]
- 第二轮:(3,4), (4,1),得到 [3, 1, 4, 8]
- 第三轮:(3,1), (3,4),得到 [1, 3, 4, 8]
- 第四轮:没有进行交换,序列保持不变
Python代码实现
def bubble_sort(li: list) -> list:
"""冒泡排序 升序"""
for i in range(len(li) - 1): # 决定遍历多少趟, n-1趟
flag = False # 标识 是否进行元素交换,未发生交换则表明数组已然是有序得了,后续就不在执行剩余趟
for j in range(len(li) - i - 1): # 相邻两元素的索引,不大于n-1,且为无序区长度-1
if li[j] > li[j + 1]:
li[j], li[j + 1] = li[j + 1], li[j]
flag = True
if not flag:
return
print('第' + str(i) + '趟:', li)
if __name__ == '__main__':
nums = [1, 5, 8, 9, 10, 4, 6, 13, 0] # 执行全部n-1趟
print('原数组:', nums)
bubble_sort(nums)
时间复杂度与空间复杂度
- 时间复杂度:最好情况下为O(n)(当输入数据基本有序时),最坏和平均情况均为O(n^2)。
- 空间复杂度:O(1),属于原地排序算法。
稳定性
冒泡排序是一种稳定的排序算法,在排序过程中相同大小的元素不会改变相对位置。例如,当两个相同元素在一起时,不会发生交换,从而保持其原始顺序。
应用场景与局限性
尽管冒泡排序效率较低,但在以下场景中仍具实用价值:
- 小规模数据集:数据量较小时,实现简单且占用内存少的优势明显。
- 教学与演示:逻辑清晰,易于理解,常用于教授基础排序原理。
- 嵌入式系统:资源受限环境下,因其实现简单而成为优选。
然而,对于大规模数据排序,冒泡排序的O(n^2)时间复杂度使其效率低下,此时应选择更高效的排序算法,如快速排序、归并排序等。
与其他排序算法的对比
- 插入排序:同样是O(n^2)时间复杂度,但插入排序在部分有序数据上表现更好。
- 选择排序:同样是O(n^2)时间复杂度,但选择排序通过减少交换次数来提高效率。
- 快速排序:平均时间复杂度为O(n log n),在大多数情况下效率更高。
冒泡排序以其易理解性和简易性成为初学者学习排序算法的良好起点。虽然它在大规模数据处理中的效率较低,但在特定场景下依然有其独特优势。
热门推荐
成语“心有灵犀一点通”是什么意思?背后有什么历史故事?
Nmap命令速查表
独库公路 “最佳打卡月” 揭秘:解锁绝美自驾之旅
张雪峰谈药学专业就业前景、考研方向、优势与劣势
生涯规划的意义:促进个人成长与职业发展
春节音乐指南:经典老歌、欢快民乐与时尚流行全推荐
邻居纠纷怎么走司法途径?费用多少?
新员工入职党员组织关系转入全流程指南(2025版)
中国游戏行业:破3000亿后的新挑战与机遇
公司制度建设情况汇报怎么写?
AI揭示猫咪的聪明社交:模仿对方表情!
拔牙全攻略:从适应症到术后护理
月收入购车指南:从电动车到豪华车的最佳选择
北极冰原上的战略棋局:俄罗斯军事力量在北极地区的部署
洗衣机故障代码大全:常见故障代码解析与解决办法
走心更走“新”,普惠更“智慧”!普陀区老年人开启智慧颐养模式
家庭白蚁防治指南:让你的房子远离白蚁困扰
属兔炉中火,如何点燃财运之火?
“巡”鹰展翅,“飞”出公安机关新质战斗力
《狼人》影评:通过经典怪物电影的镜头探索代际创伤
挑选钻戒的20个实用建议
上海迪士尼乐园"漫威英雄总部见面会":与漫威英雄近距离接触
使用开源软件时如何合法合规
领域大模型的挑战与机遇:从构建到应用
重庆深度游指南:必去景点、美食与实用旅行贴士
大型舞剧《花木兰》亮相中华文化节 彰显家国情怀和人性光辉
【宠物健康地图】懒人也能轻松养鱼!新手的水族箱「养水指南」
山川风土、千古文明与汉语方言
猪生肖怎么看自己的财运
购车补贴政策对新能源汽车企业的影响研究——以比亚迪为例