冒泡排序是属于交换排序的。算法比较好写。冒泡排序就是利用沉浮定理来的。将大数上浮,小数下沉。或者相反。
这种算法就是每次比较一趟,将最值依次往后放。
比如说:
有一组数 :9,7,4,2,3,6,4,8,1 共九个数
冒泡就是这样实现的。先第一个数第2个数比,数大就给后面,那么依次比最,大数自然会放最后面
第1次 7 4 2 3 6 4 8 1 9
第2次 4 2 3 6 4 7 1 8 9
第3次 2 3 4 4 6 1 7 8 9
第4次 2 3 4 4 1 6 7 8 9
第5次 2 3 4 1 4 6 7 8 9
第6次 2 3 1 4 4 6 7 8 9
第7次 2 1 3 4 4 6 7 8 9
第8次 1 2 3 4 4 6 7 8 9
结果是:
1 2 34 4 6 7 8 9
算法代码如下:
packagecom.fish.sort;
/*
* 冒泡排序
*/
public class BubbleSort {
public static void main(String[] args) {
// 将九个数进行排序
int[] array = { 9, 7, 4, 2, 3, 6, 4, 8, 1 };
// 排序
myResult(array);
}
public static void myResult(int[] array) {
int swap;
// 外层循环控制比较次数
for (int i = 0; i < array.length - 1; i++) {
// 内层循环控制将最大数往后放
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
swap = array[j];
array[j] = array[j + 1];
array[j + 1] = swap;
}
}
}
// 出结果
System.out.println("结果是:");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
这种算法时间复杂度n^2 空间复杂度是1.是稳定排序。