桶排序的基本思路是:
第一步:先獲取陣列中的最大和最小值,來得到桶的個數;
第二步:然後遍歷陣列,將陣列中的值插入到桶中,陣列的值為桶的index;此桶的值0為這表示該位置沒有值,為1則表示有乙個值,為n的時候表示有多個值;
第三步:重新遍歷桶,如果當前index對應的值不為0,則表示有值,放到arr陣列中。
時間複雜度和空間複雜度都是非線性的。當數比較密集的時候,使用桶排序比較好。
public static int bucketsort(int arr)
intmax = integer.min_value;
for (int i = 0; i < arr.length; i++)
int bucket = new int[max + 1]; //生成最大值個桶
for (int i = 0; i < arr.length ; i++)
int j = 0;
for (int i = 0; i < bucket.length;i++)
}return arr;
}
排序演算法 桶排序 Java
author jaceding description 優點 1 桶排序是穩定的 2 桶排序是常見排序演算法中最快的一種,大多數情況下比快排和歸併排序還要快 缺點 1 非常浪費空間 2 排序的資料非常限定,元素必須是0到某一確定範圍的整數 時間複雜度 o n 空間複雜度o n m n是待排元素 m是...
夯實基礎 排序演算法之桶排序
任務 使用桶排序將陣列從大到小排列。原始陣列 先迴圈陣列,取出陣列最大值17與最小值3,計算最大值與最小值的差值,以差值除以陣列長度,再加一得到桶的數量 17 3 10 1 2。迴圈陣列放到桶裡,結果 然後針對各個桶內資料進行排序。然後按順序取出各桶的結果。public static void bu...
排序演算法之桶排序
1 設定乙個定量的陣列當作空桶子 2 尋訪序列,並且按照要求把記錄乙個乙個放到對應的桶子去 3 對每個不是空的桶子進行排序。4 從不是空的桶子裡把專案再放回原來的序列中。include include include include typedef struct node node,list voi...