一、原理
每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后
二、方法
比如5个数: 5,4,3,2,1
轮次 相邻比较次数
第1轮: 4,5,3,2,1 1
4,3,5,2,1 2
4,3,2,5,1 3
4,3,2,1,5 4
第2轮: 3,4,2,1,5 1
3,2,4,1,5 2
3,2,1,4,5 3
第3轮: 2,3,1,4,5 1
2,1,3,4,5 2
第4轮: 1,2,3,4,5 1
规律:5个数只需要4轮,每轮比较次数递减,即(5-轮次)
三、核心代码
for(int i = 0;i < 5-1;i++){
for(int j = 0;j < 5-1-i;j++){
//判断大小决定互换
if(array[j]>array[j+1]){
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}