演算法之排序0——簡化版桶排序
阿新 • • 發佈:2019-01-10
看了《啊哈!演算法》一書,打算寫點讀書筆記,記錄一下。
先說說桶排序,先說說超級簡化版本的桶排序:
/** * 簡化桶排序,以簡單的整型為例,數值是多少,就在陣列下標相同(桶)的數加一;例如取到數13,那麼就a[13]++; * 然後迴圈桶,輸出值大於0的角標(1輸出1次,2輸出2次) */ public static void Tong() { int a[] = { 1, 20, 9, 3, 8, 4, 72, 8, 16, 7, 8, 13, 24, 5, 20 };// 待排序的值 int sort[] = new int[100];// 桶 for (int i = 0; i < a.length; i++) { sort[a[i]]++; } // 輸出 int num = 0; for (int j = 0; j < sort.length; j++) { num = sort[j]; for (int k = 0; k < num; k++) { System.out.println(j); } } }
共有N個數,需要迴圈N次,時間複雜度為O(N);
但是簡化版桶排序,只能進行最簡單的數值處理,且非常浪費空間。