冒泡排序简述
冒泡排序算法的思想:进行多重循环,一个外循环,一个内循环。外循环进行对数组的次数循环,内排序进行相邻数字之间的对比,相邻两个数字进行对比,如果前一个数字大于后一个数字,交换顺序。
具体代码如下:
private static void run(int[] arr) {
if (arr.length == 0 || arr == null)
return;
int temp;
for (int i = 0; i < arr.length; i++) {
//如果arr.length -i 不 -1,抛出数组越界异常,数组为arr[j+1];
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
下面对本方法进行测试:
public static void main(String[] args) {
int[] arr = {8, 5, 66, 8, 3, 5, 63, 858, 6, 434, 67};
System.out.println("冒泡排序前:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
run(arr);
System.out.println();
System.out.println("冒泡排序后:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
结果如下:

核心思想:
相邻元素进行比较(array[j] 和 array[ j +1 ]),循环一次出来一个最大值(最小值)。
因此,相同元素的前后顺序并没有改变,冒泡排序是一种稳定排序算法。
1216

被折叠的 条评论
为什么被折叠?



