百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python冒泡排序大揭秘:看数字如何一步步‘冒泡’到有序!

off999 2024-12-26 15:54 32 浏览 0 评论

冒泡排序(Bubble Sort)是一种简单的排序算法,通过多次比较相邻元素,将较大的元素逐步“冒泡”到列表的末尾。虽然效率不高,但冒泡排序的原理直观,适合理解排序算法的基础。

冒泡排序算法步骤

  1. 外层循环:控制需要的排序轮数。每轮循环会将剩余未排序的部分最大值冒泡到末尾。
  2. 内层循环:从列表开头开始,两两比较相邻的元素。如果前一个元素大于后一个元素,就交换它们。
  3. 优化点:可以使用标志位检查本轮是否有交换发生,如果没有交换说明数组已排序,可以提前终止。

冒泡排序的 Python 实现

python



def bubble_sort(arr):

n = len(arr)

# 遍历每一个元素

for i in range(n):

# 添加一个标志位以检查是否发生交换

swapped = False


# 内层循环,逐步冒泡较大元素到末尾

for j in range(0, n - i - 1):

# 如果前面的元素比后面的大,交换它们

if arr[j] > arr[j + 1]:

arr[j], arr[j + 1] = arr[j + 1], arr[j] # 交换

swapped = True



# 如果本轮没有交换,说明已排序好,直接退出循环

if not swapped:

break



return arr



示例

python



# 示例数组

array = [64, 34, 25, 12, 22, 11, 90]



# 调用冒泡排序

sorted_array = bubble_sort(array)



print("排序后的数组:", sorted_array)



代码解析

  • for i in range(n):外层循环控制轮次,每一轮将未排序区域的最大值“冒泡”到最末尾。
  • for j in range(0, n - i - 1):内层循环比较相邻的元素,n - i - 1 确保不比较已经排序的部分。
  • arr[j], arr[j + 1] = arr[j + 1], arr[j]:如果前一个元素比后一个大,交换它们。
  • 提前退出条件swapped 作为标志位,在本轮内没有发生任何交换,说明数组已排序,直接结束。

输出

plaintext



排序后的数组: [11, 12, 22, 25, 34, 64, 90]



复杂度分析

  • 时间复杂度:平均和最差情况为 O(n2)O(n^2)O(n2),最好情况(已排序数组)为 O(n)O(n)O(n)。
  • 空间复杂度:O(1)O(1)O(1),只需要常量级额外空间。

相关推荐

怎么开启路由器wifi(怎么开启路由器的dhcp功能)

把路由器改为开放网络方法如下:1、打开浏览器,在地址栏输入路由器网关IP地址(路由器背后的标签上有,一般是192.168.1.1),输入登录用户名和密码(一般均为admin);2、登录成功后就显示运行...

win10加载不出来桌面黑屏(window10加载不出来)

方法一、如果是遇到了突发性黑屏首先尝试使用Ctrl+Alt+Delete组合键来进行电脑重启一般重启可以解决大部分黑屏故障。win10电脑黑屏按什么键恢复_win10电脑黑屏一键恢复的方法方法...

怎么用火绒关闭win安全中心(win10火绒安全软件怎么关闭)

一、火绒防火墙关闭方法在电脑上运行火绒软件后,点击首页界面的“防护中心”,在病毒防护界面可以关闭文件、U盘、邮件等保护功能,。系统防护:在该界面可以关闭系统防护功能,。网络防护:可以关闭网络保护等功...

微软应用商店下载手机版(微软应用商店在哪下)

、在桌面任务栏找到微软应用商店,点击并打开。2、进入页面后点击【应用】,进入应用页面。3、在页面里往下移动,找到热门应用,找到一个软件,点击进入。4、进入页面后,点击【安装】,软件会自动安装,安装完毕...

win11系统怎么查看电脑配置(win11怎么查看系统版本)

答:win11查看电脑配置步骤如下。1.点击下方任务栏的windows图标或者按下键盘“windows键”打开开始菜单。2.在开始菜单中找到“设置”或“settings”,一般是右上角的齿轮状按钮,3...

麦克风没坏但是没声音(麦克风没声怎么回事)

几种可能性,供您参考:1、麦是完全好的(其它机子上可以用)2、插孔没有插错3、音量控制里的麦克风并没有静音掉4、声卡驱动已重装过N次,新的旧的都试过了5、音量控制→属性→录音→麦克风下面的勾...

win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
  • win10系统怎么分区(win10应该怎么分区)
wps office是干什么的(wps office是干什么的可以卸载吗)

   WPSOffice一站式办公服务平台,具有可兼容Word、Excel、PPT三大办公组件的不同格式,支持PDF文档的编辑与格式转换集成思维导图、流程图等诸多功...

百度网页(百度网页自动翻译怎么设置)

1、百度的新闻源网站太多了,基本上大型的商业门户+政府官方的媒体、机构部门都是。2、出现在【百度新闻】里的网站都是新闻源网站。3、怎么判断一个网站是不是新闻源:1)在百度新闻下直接搜网站名字,如果出现...

外国网站的浏览器下载(外国网站的浏览器下载Games)

答,可在浏览器上面下载所需要的视频/音乐的名称,下载完毕后,按所给的排列表找出所需要的视频/音乐。如果是喜欢的视频/音乐它在浏览器里边都有分类,可详细的介绍一下自己吧,还可以在古典音乐或者名著导读介绍...

京东攒机助手(京东攒机在哪)
京东攒机助手(京东攒机在哪)

自己在京东买的配置,以为身边的人能帮忙组装,但是好像超过了个人的认知,所以无奈之下只能在京东找专业人士进行安装,挺快,前一天傍晚下单,第二天上午上班就来了,组装师傅挺好,挺有耐心,业务也挺熟练,走线看起来也不错,买的机箱是师傅从来没有接触过...

2025-11-14 22:03 off999

腾讯电脑管家和360哪个好(腾讯电脑管家好用还是360好用)

两个都很好。1.腾讯电脑管家和360卫士都是电脑上最常见的免费杀毒软件,两款软件在病毒查杀上都是首屈一指的。2.360卫士在功能上十分丰富,从木马查杀到电脑清理以及优化加速都是一应俱全的,而且还集成了...

笔记本突然没声音(笔记本突然没声音是什么原因)

可能是因为电脑声音驱动设备故障导致电脑没有声音。解决方法:使用Win+X快捷键,然后在弹出的窗口中点击“设备管理器”选项,之后点击“打开声音、视频和游戏控制器”选项,打开的属性界面查看运行是否正常,或...

大白菜一键装机win7系统(大白菜装系统教程win7)

1.电脑开机按f2或del进bios里面,启动项里面设置U盘启动,保存退出重启。2.键盘上一直按f12或f10,选择大白菜的u盘,进入pe界面,键盘按上下健移动,选择2003pe或win10pe,按回...

迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)
  • 迅雷在线资源网观看(迅雷资源网 1080p 下载)

取消回复欢迎 发表评论: