思想:
冒泡排序就是整个过程像气泡一样往上升
单向冒泡排序的基本思想是(假设由小到大排序):对给定的 n 个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录,则交换两个记录的位置,进行一轮比较和换位之后,n个记录最大的记录将位于第n位
然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩一轮为止。
时间复杂度:
平均 : O(n^2) 最好: O(n) 最坏: O(n^2)
代码实现如下:
//升序
public void BubbleSort(int[] array){
if ((array.length == 0)||array.length==1) return;
int length = array.length;
for (int i =0; i<length-1; i++) {
for(int j=i+1; j<length, j++) {
if (array[i]>array[j]) {
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
}
//递归实现冒泡排序
public void BubbleSort(int[] array, int length) {
if((length==0)||length==1) return;
for(int i=0; i<length-1; i++){
if (array[i]>array[i+1]) swap (array[i], array[i+1]);
}
BubbleSort(array, length-1)
}