學習日記 桶排序

2021-07-24 04:42:14 字數 953 閱讀 4873

最近有學習基數排序(桶排序),先寫下簡單的一次性桶排序。

方法://排序陣列a,假象桶bucket,臨時存放陣列tmp ,需要方法tmp=a.clone() 

1.複製陣列 tmp=a.clone();

2.設定桶的長度bucket.length= a.max-a.min+1 ;

3.將數字放入桶中並記錄數字放入次數 ;

4.調整桶最終的記錄次數;

4.根據桶的記錄將臨時陣列裡的資料按順序放回原陣列中

public class bucketsort ;

public static void main(string args) ;

system.out.println("排序前:");

for (int b : a)

int min = 1, max = 9;

int tmp = new int[a.length];

tmp = a.clone();// 複製陣列臨時存放

int bucket = new int[max - min + 1];// 建立桶

/* 排序過程 */

// 將數字放入桶中

for (int i = 0; i < a.length; i++)

/** 調整每個桶記錄的次數

* 因為每個桶能放的資料是依次增大的

* 所以每個桶最後記錄的次數=自己原來記錄的次數+前面的所有桶記錄的次數

* 依次疊加即可

*/for (int k = 1; k < bucket.length; k++)

// 按照桶記錄的資料將臨時陣列的資料按順序放回原來的陣列中

for (int h = 0; h < a.length; h++)

/* 排序過程end */

system.out.println("排序後:");

for (int b : a)

}}// end

桶排序學習

將待排序陣列按照大小分別放入n個桶,然後對各桶內資料排序,之後合併。減小總的每次排序的規模,用空間換時間。元素值域的劃分,也就是元素到桶的對映規則。對映規則需要盡量保證元素分散均勻,否則當所有資料集中在同乙個桶中時,桶排序失效。排序演算法的選擇。桶排序演算法的複雜度和穩定性,都根據選擇的排序演算法不...

排序 桶排序

首先,桶排序是一種簡單並且執行快的一種排序。第一步,對五個數進行排序。程式如下 include using namespace std int main 首先對陣列進行歸零 for int j 1 j 5 j 將輸入的數的個數存入陣列中。for int k 1 k 10 k 執行原理 桶排序,就是先...

演算法學習03 桶排序

首先遍歷陣列,找到最大值與最小值,設定乙個長度為最大值 最小值 1的陣列,再次遍歷這個陣列,以當前值 最小值作為下標,將該下標的計數器增1。掃瞄一遍計數器陣列,按順序將值收集起來。舉個例子 nums 2,4,3,4,7 遍歷一次陣列,找到陣列元素的最小值與最大值分別為2和7,那麼我們設定乙個長度為7...