/**
* * @author mr.du
* * date:2019-02-27
* *
* 桶排序:桶排序中的桶是什麼概念呢?每乙個桶代表乙個區間範圍,裡面可以承載乙個或多個元素。
* 第一步就是建立這些桶,確定每乙個桶的區間範圍,具體建立多少個桶如何確定它的區間範圍,有很多方法
* 我們這裡建立的桶數量等於原始數列的元素數量,除了最後乙個桶只包含陣列最大值,前面各個桶的區間按
* 比例確定,區間跨度 = (最大值 - 最小值)/(桶的數量 - 1).
* 第二步:遍歷原始陣列,把元素對號入座放入各個桶中
* 第三步:每個桶內的元素分別排序
* 第四步:遍歷所有的桶,輸出所有元素
*/
publicstatic
double bucket_sort(double
arr)
double d = max -min;
//初始化桶,定義乙個linklist集合表示桶,arraylist用來接收所有桶
int len =arr.length;
arraylist
> arraylist = new arraylist>();
for(int i = 0;i)
//遍歷原始陣列,將元素放入桶中
for(int i = 0;i)
//對每乙個桶中元素進行排序
for(int i = 0;i)
//輸出全部元素
double newarr = new
double
[arr.length];
int index = 0;
for(linkedlistlist:arraylist)
return
newarr;
}
排序之桶排序
本文以 啊哈!演算法 為教材,個人理解整理。例 老師要給5個小朋友進行打分,滿分為10分,要求將最終的分數從高到低排序後顯示出來。輸入 5 3 5 2 8 輸出 8 5 5 3 2 桶排序就像它的名字一樣和桶很相似,如分數的範圍為0 10,那就可以分為11個 桶 分別為 桶0,桶1,桶2,桶3,桶4...
最快排序之 桶排序
桶排序的基本思想就是利用空間換時間,如果將一最大值為100000的一組數進行排序,最簡單粗暴的方法就是桶排序,建立乙個100001這麼大的陣列,每一位代表乙個乙個數,初始化時將陣列全部賦值為零,一次讀入需要排序的數,如果讀入5278則將num 5278 代表出現過一次5278。輸入結束之後,從1開始...
排序演算法之桶排序
1 設定乙個定量的陣列當作空桶子 2 尋訪序列,並且按照要求把記錄乙個乙個放到對應的桶子去 3 對每個不是空的桶子進行排序。4 從不是空的桶子裡把專案再放回原來的序列中。include include include include typedef struct node node,list voi...