啊哈!算法隨筆
chapter 1 排序算法
(1) 簡易桶排序 (2) 冒泡排序 (3) 快速排序
(1) 若排序長度為N 申請大小為N的數組 數組每一項比喻成一個桶,各項初始為0 循環待排序的數 將數對應的數組下標計數 循環完畢后 循環輸出非空的數組 即為最后的排序所得 時間復雜度為O(M+N) MN分別為數據范圍和數據個數
(2) 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來 時間復雜度為O(N*N)
(3) 與冒泡排序不同的是 冒泡排序每趟確認最后一位的數值 而快速排序每次確認的是基準值的位置 以第一個數為基準值 左右分別留下指針i j 先j從右向左找小于基準的數 再i從左向右找大于基準的數 都找到后交換 若在這之前ij相遇 那么將基準值與相遇處交換 基準值位置確定后 在循環遞歸基準值的左邊和右邊 最壞時間復雜度的O(N*N) 平均時間復雜度為O(N*logN)
浙公網安備 33010602011771號