数组常见操作--冒泡排序
| 一、冒泡排序(波浪式) |
| 顺序排序,就是每个位置按照顺序选出这个位置的最值,或许应该叫最值排序,海胆式 |
| 冒泡排序,相邻波动比较,波浪式,蛇式 |
|
【】外循环,一共进行length-1次,不需要自己和自己比较 既可以从x=0到length-2;(也可以x从1到length-1;) 【】内循环相近两者比较,边界是倒数两个比较,内循环最后一个比较的角标是length-2与length-1比较 所以内循环角标从0到length-2 【】因为每次列数都下降,,要减去一个变量x
|
![]() |
|
二、冒泡排序的函数化
【】输出是个操作,没有具体值 【】输入是一个数组变量 |
|
【】正常开发不写冒泡和选择排序,而是有打包好的工具直接使用 【】这个用来面试和了解算法学习 【】最快是希尔排序(位运算) |
| 三、换位操作功能化 |
| 由于换位置操作经常出现,可以将这个功能化 |
|
输入:数组,角标1,角标2 输出:操作,void
|
| 这样swap()函数就能在冒泡排序和选择排序中使用,提高复用性了 |
| 四、排序性能问题(优化) |
|
【】选择排序在确定第一个最值时会经过多次位置互换,堆内存也发生多次位置互换 【】为了减少位置互换,可以在栈内存设置两个变量,一个记录第一个最值的内容,一个记录其角标。等确定第一个最值后,再进行位置置换。 这样确定一个最值,只需要交换一次就够了 |
|
|








浙公网安备 33010602011771号