搜索
首页php教程PHP开发交换排序—冒泡排序(Bubble Sort)

交换排序—冒泡排序(Bubble Sort)

Dec 19, 2016 pm 02:04 PM
冒泡排序

交换排序主要是通过两两比较待排记录的关键码,若发生与排序要求相逆,则交换之。先来看看待排序列一趟冒泡的过程:设1
泡方法为:

i=1; //设置从第一个记录开始进行两两比较

若i≥j,一趟冒泡结束。

比较r[i].key 与r[i+1].key,若r[i].key≤r[i+1].key,不交换,转⑤

当r[i].key>r[i+1].key 时, r[0]=r[i];r[i]=r[i+1];r[i+1]=r[0];将r[i]与r[i+1]交换

i=i+1; 调整对下两个记录进行两两比较,转②


冒泡排序方法:对n 个记录的表,第一趟冒泡得到一个关键码最大的记录r[n],第二趟冒泡对n-1 个记录的表,再得到一个关键码最大的记录r[n-1],如此重复,直到n 个记录按关键码有序的表。

【算法10.6】

j=n; //从n 记录的表开始

若j<2,排序结束

i=1; //一趟冒泡,设置从第一个记录开始进行两两比较,

若i≥j,一趟冒泡结束,j=j-1;冒泡表的记录数-1,转②

比较r[i].key 与r[i+1].key,若r[i].key≤r[i+1].key,不交换,转⑤

当r[i].key>r[i+1].key 时, r[i]<-->r[i+1]; 将r[i]与r[i+1]交换

i=i+1; 调整对下两个记录进行两两比较,转④


【效率分析】
空间效率:仅用了一个辅助单元。

时间效率:总共要进行n-1 趟冒泡,对j 个记录的表进行一趟冒泡需要j-1 次关键码比较。

移动次数:冒泡排序

最好情况下:待排序列已有序,不需移动

最坏情况下:每次比较后均要进行三次移动,冒泡排序



更多交换排序—冒泡排序(Bubble Sort)相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

北端:融合系统,解释
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前By尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用