场景:
对数组int []arr={ 3, 9, -1, 10, -2},实现从小到大冒泡排序。
思路分析:
5个数,外层循环需要排序4轮,即:循环从0开始,循环次数为 数组的长度-1
第一轮排序获得最大元素在倒数第1个位置
第一轮的内部第1次排序,下标为0的元素与下标为1的元素相比,arr[0]<arr[1],则不需要交换.
第1次排序结果为:3, 9, -1, 10, -2
代码:
for(int j=0;j<4;j++){
if(arr[0]>arr[1]){
temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}
}
第一轮的内部第2次排序,下标为1的元素与下标为2的元素相比,如果arr[1]>arr[2],则交换位置
将arr[1]的值存入 temp
将arr[2]的值赋值给arr[1]
最后将temp的值赋值给arr[2]
第2次排序结果为:3, -1, 9, 10, -2
代码:
for(int j=1;j<4;j++){
if(arr[1]>arr[2]){
temp = arr[1];
arr[1] = arr[2];
arr[2] = temp;
}
}
第一轮的内部第3次排序,下