圖解算法系列之氣泡排序(Low版)
阿新 • • 發佈:2018-12-11
(1)演算法描述
對於給定的線性序列,每一個元素與其下一個元素進行比較,如果滿足大於當前元素就交換位置,然後依次向下比較。利用數學歸納法得知:N個元素總共比較N(N-1)次。
(2)圖解演算法
(3) C/C++程式碼實現
Custom.h
void BubbleSort(int arr[], int number);
Custom.cpp
void BubbleSort(int arr[], int number) { for (int i = 0; i < number; i++) { for(int j = 0; j < number-1; j++) { if(arr[j] > arr[j+1]) { int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } }
(4)Java程式碼實現
public class BubbleSort { public static void sort(int[] arr, int number) { for (int i = 0; i < number; i++) { for (int j = 0; j < number-1; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } } }
(5) 時間複雜度分析
無論是否資料規模處於最好還是最壞情況,都需要每個元素進行比較,因此時間複雜度是O(n^2)。