冒泡排序算法思想
冒泡排序的實現(xiàn)為:兩兩比較,前者大于后者交換,將最大的放入最后,然后重復(fù)這個步驟直到?jīng)]有任何一對數(shù)字需要比較。
冒泡排序算法實現(xiàn)
public static void main(String[] args) {
int[] arr = {3,3,3,3,3,3,4, 3};
int[] insertSort = bubbleSort(arr);
for (int i : insertSort) {
System.out.print(i + " ");
}
}
/**
* 冒泡排序
*
* @param arr
* @return
*/
private static int[] bubbleSort(int[] arr) {
if (arr.length == 0) return null;
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j + 1];
arr[j + 1] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
算法復(fù)雜度
冒泡排序的最壞時間復(fù)雜度O(n^2)
冒泡排序的最好時間復(fù)雜度O(n)
冒泡排序的平均時間復(fù)雜度O(n^2)
冒泡排序的空間時間復(fù)雜度O(1)
算法穩(wěn)定性
冒泡排序是穩(wěn)定的
想看完整算法請點擊:冒泡排序