冒泡排序也是对数组中的元素进行两两比较,不同于选择排序的是参与比较的元素不同,下面同样给出毕向东老师Java基础中的图片
不难看出,这一种排序方式是arr[0]与arr[1]比较,取较大者放入arr[1],之后arr[1]再与arr[2]比较,较大的元素放入arr[2],而后是arr[2]与arr[3]进行比较,取较大,直至最后,这样一次下来就可以将数组中最大元素放入最后。之后再由arr[0]开始继续操作,值得一提的是,需要操作的对象逐次减少。下面给出本人代码参考。
public static void selfBubbleSort(int[] arr){//冒泡排序
for(int i = 0;i<arr.length-1;i++){
for(int x = 0;x<arr.length-1-i;x++){//length-1是为了防止数组越界 -i是因为内循环的次数越来越少,因为每循环一次都会确定一个后面的值,则后续所需要的循环次数也应该依次减少一
if(arr[x+1]>arr[x]){
int temp = arr[x+1];
arr[x+1] = arr[x];
arr[x] = temp;
}
}
}
}