排序之桶排序

2022-05-07 11:21:11 字數 924 閱讀 8252

/**

* * @author mr.du

* * date:2019-02-27

* *

* 桶排序:桶排序中的桶是什麼概念呢?每乙個桶代表乙個區間範圍,裡面可以承載乙個或多個元素。

* 第一步就是建立這些桶,確定每乙個桶的區間範圍,具體建立多少個桶如何確定它的區間範圍,有很多方法

* 我們這裡建立的桶數量等於原始數列的元素數量,除了最後乙個桶只包含陣列最大值,前面各個桶的區間按

* 比例確定,區間跨度 = (最大值 - 最小值)/(桶的數量 - 1).

* 第二步:遍歷原始陣列,把元素對號入座放入各個桶中

* 第三步:每個桶內的元素分別排序

* 第四步:遍歷所有的桶,輸出所有元素

*/

public

static

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...