数组常见操作--冒泡排序

一、冒泡排序(波浪式)
顺序排序,就是每个位置按照顺序选出这个位置的最值,或许应该叫最值排序,海胆式
冒泡排序,相邻波动比较,波浪式,蛇式

【】外循环,一共进行length-1次,不需要自己和自己比较

既可以从x=0到length-2;(也可以x从1到length-1;)

【】内循环相近两者比较,边界是倒数两个比较,内循环最后一个比较的角标是length-2与length-1比较

所以内循环角标从0到length-2

【】因为每次列数都下降,,要减去一个变量x

 
 

二、冒泡排序的函数化

【】输出是个操作,没有具体值

【】输入是一个数组变量

【】正常开发不写冒泡和选择排序,而是有打包好的工具直接使用

【】这个用来面试和了解算法学习

【】最快是希尔排序(位运算)

 
 
三、换位操作功能化
由于换位置操作经常出现,可以将这个功能化

输入:数组,角标1,角标2

输出:操作,void

这样swap()函数就能在冒泡排序和选择排序中使用,提高复用性了
 
 
四、排序性能问题(优化)

【】选择排序在确定第一个最值时会经过多次位置互换,堆内存也发生多次位置互换

【】为了减少位置互换,可以在栈内存设置两个变量,一个记录第一个最值的内容,一个记录其角标。等确定第一个最值后,再进行位置置换。

这样确定一个最值,只需要交换一次就够了

 

 

 

 
 
 
 
 
 
posted @ 2025-07-08 09:35  ibddindonon  阅读(11)  评论(0)    收藏  举报