冒泡排序(参考黑马)
1、时间复杂度
最好情况:O(n),数组内的元素已经有序
最坏情况:O(n^2)
2、空间复杂度:
O(1)
3、稳定:排序前后会不会把取值相同的元素顺序调换
4、思想
x记录最后一次交换的索引位置,3和2交换,记录索引位置为0,不断交换,记录下最后一次交换位置为1
package sort;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int[] a = {6,5,4,3,2,1};
System.out.println(Arrays.toString(a));
bubble(a);
System.out.println(Arrays.toString(a));
}
public static void bubble(int[] a){
//j未排序区域右边界
int j = a.length-1;
do {
int x = 0;
for (int i = 0; i < j; i++) {
if (a[i] > a[i + 1]) {
int t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
x = i;
}
}
j = x;
} while (j != 0);
}
}