冒泡排序算法
原理
-
选定一个方向,如从小到大
-
依次将每个下标下的数据,从左到右比较,把最小的数据放到左边来,如依次把第一个元素和后面的元素比较,如果发现后面的元素比第一个元素小,就将其交换,放到第一个元素来
-
第二轮,从第二个元素开始,依次类推
-
时间复杂度O(n*n)
实现
public class MaoPao {
public static void main(String[] args) {
int[] arr = new int[]{3, 4, 1, 21, 10, 6, 0};
sort(arr);
printlnArr(arr);
}
/**
* 从小到大排序
*
* @param arr
*/
public static void sort(int[] arr) {
int len = arr.length;
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
if (arr[i] > arr[j]) {
int t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
printlnArr(arr);
}
System.out.println("a lun hui");
}
}
public static void printlnArr(int[] arr) {
String str = "";
for (int i : arr) {
str += i + " ";
}
System.out.println(str);
}
}
代码结果
3 4 1 21 10 6 0
1 4 3 21 10 6 0
1 4 3 21 10 6 0
1 4 3 21 10 6 0
1 4 3 21 10 6 0
0 4 3 21 10 6 1
a lun hui
0 3 4 21 10 6 1
0 3 4 21 10 6 1
0 3 4 21 10 6 1
0 3 4 21 10 6 1
0 1 4 21 10 6 3
a lun hui
0 1 4 21 10 6 3
0 1 4 21 10 6 3
0 1 4 21 10 6 3
0 1 3 21 10 6 4
a lun hui
0 1 3 10 21 6 4
0 1 3 6 21 10 4
0 1 3 4 21 10 6
a lun hui
0 1 3 4 10 21 6
0 1 3 4 6 21 10
a lun hui
0 1 3 4 6 10 21
a lun hui
0 1 3 4 6 10 21