冒泡排序
冒泡排序是一种对数组中数据元素排序的方法。
原理
个人理解:从数组第一个元素开始,对它和它后一位的元素比较,数字大的排到后面,然后排到第二位的元素(较大的那个)与第三位元素比较,重复之前的步骤。
标准解释:每一次对数组的遍历都是将较大数交换到后面,这样每次遍历都会将最大值换到最后一位。每次遍历后,排序数组的规模都会减少一个数据元素。
代码实现
设置数组遍历输出的方法:
public static void printArray(int[] array) {
for(int i:array) {
//这么写更美观,纯个人强迫症
System.out.print(i+" ");
}
System.out.println();
}
设置冒泡排序方法:
public static void bubble(int[] array) {
for(int i=0;i<array.length-1;i++) {
for(int j=0;j<array.length-1-i;j++) {
if(array[j]>array[j+1]) {
swap(array, j, j+1);
}
}
}
}
设置冒泡排序中的元素交换位置的方法:
public static void swap(int[] array,int x,int y) {
int temp = array[x];
array[x] = array[y];
array[y] = temp;
}
测试:
public static void main(String[] args) {
int[] array = {3,9,7,5,1};
//先调用遍历方法看一下原数组
printArray(array);
//分割线!行!
System.out.println("--------------");
//调用冒泡排序方法
bubble(array);
//再次调用遍历方法查看冒泡排序后的数组
printArray(array);
}
运行结果:
美观,一目了然,强迫症表示支持!