Java冒泡排序
- Java冒泡排序是比较出名的排序方法,也比较简单:
public static void main(String[] args){
//初始数组
int [] arr = {15,19,11,56,1,7,10,100,99,13};
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length-1-i; j++) { //为什么要减 i?
//每次外圈循环后 必定冒泡一便,那么下次循环的时候 最后i位数就是已经排好序的 便不需要循环了(增加性能)。
if (arr[j]>arr[j+1]){ //判断左边的值比右边大 则交换位置
//存放左边初始值
int thisInt = arr[j];
//右边值赋值给左边
arr[j] = arr[j+1];
//左边值赋值给左边
arr[j+1] = thisInt;
}
}
}
for (int i : arr) {
System.out.print(i+" ");
}
}
- 可以看到,内圈循环每次减少i次,这是为什么呢?
每次外圈循环后 必定冒泡一编,那么下次循环的时候 最后i位数就是已经排好序的 便不需要循环了(增加性能)。
- 我们可以dubug来看一下