什么是冒泡排序?
冒泡排序就是将数组从0位置开始没两个位置互相比较,并按照排序要求互换。
举例:例如[1,5,3,8,9],1-5比较,不换,5-3比较换位置以此类推直到最后一个。
为什么使用冒泡排序?
当然是为了数组排序
如何实现
/**
* 冒泡排序:0 1 1 2 2 3 4 5 5 6 按照此下标挨个对比大小将小的交换到前面
* 这样一次循环之后最大的值肯定是在数组的最末尾,此时最末尾就不需要加入比较了,所以外层循环每次--,放过最大数
* 因为每次都是两个数进行比较,所以内层循环从1位置开始和本身数的前一位作比较然后进行交换,循环中止界限为i也就是最大数的前一位
* @param arr
*/
public static void bubbleSort(int[] arr){
int N = arr.length;
for (int i = N-1; i >=0 ; i--) {
for (int j =1; j<=i;j++){
if (arr[j-1]>arr[j]){
swap(arr,j-1,j);
}
}
}
}
ps:swap方法详见选择排序算法