冒泡排序
使用冒泡排序为一列数字进行排序的过程
最坏时间复杂度: O(n^{2})
最优时间复杂度: O(n)
平均时间复杂度:O(n^{2})
空间复杂度 总共 :O(n),需要辅助空间 :O(1)
1、原理
1、将序列中所有元素两两比较,将最大的放在最后面。
2、将剩余序列中所有元素两两比较,将最大的放在最后面。
3、重复第二步,直到只剩下一个数。
2、实现
冒泡排序:
/* 冒泡排序 */
public class BubbleSort {
public static void sort(int[] a){
int len = a.length;
for(int i=0; i < len; i++){
// 第二次循环都会少一次(因为最大的在后面)
for(int j = 0 ; j<len-1-i; j++){
// 大的往后移动
if (a[j]>a[j+1]) {
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
}