圖解算法系列之冒泡排序(Low版)
阿新 • • 發佈:2018-12-11
下一個 col 歸納 .cpp vpd 如果 ber 依次 分享圖片 (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)。
圖解算法系列之冒泡排序(Low版)