思想详解:
第一轮:第一个元素和第二个元素进行比较值大的往移,第二个和第三个元素进行比较值大的往后移,
第三个和第四个进行比较值大的往后移...以此类推,第一轮是把数组中最大值放到最后一位
第二轮:第一个元素和第二个元素进行比较值大的往后移一位,
然后第二个元素和第三个元素进行比较,值大的往后移,以此类推,把数组第二大的放到倒数第二位 以此类推
代码如下:
//冒泡排序
int[] arr={5,2,1,22,11,0};
//创建一个临时变量
int temp;
for (int j = 0; j <arr.length-1 ; j++) {//进行比较的轮数:数组的长度-1 这里的数组长度为6 6-1=5 所有会比较5轮,经过了5轮排序
for (int i = 0; i < arr.length - 1-j; i++) {//所有这里要-1,(防止出现数组角标越界)
if (arr[i] > arr[i + 1]) {//因为这里是+1 这里是从小到大进行排序,如果要从大到小换成<就可以了
//满足条件则交换
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.print(Arrays.toString(arr));