最快最簡單的排序 桶排序

2021-08-19 20:33:58 字數 449 閱讀 6751

只需借助乙個一維陣列,對一組數進行簡單的桶排序。

實現:①初始化一維陣列(10個元素),每個元素對應的下標用來記錄 0-9 以內待排序數字出現的次數,如a[5]=3, 代表5數字出現了3次,a[2]=0, 代表2數字出現了0次;

②錄入要排序的一組數字,每乙個數字對應陣列下標,用該陣列元素記錄出現的次數;

③列印每個陣列的下標,陣列元素存放的資料即為待排序的數的出現次數。

#includeint main()

for(i=0; i<5; i++) //讀取5個待排序的數

for(i=0; i<10; i++) //依次判斷a[0]-a[9];

for(j=0; j可以對程式進行修改,設定你需要排序的陣列最大範圍,來申請陣列大小。

複雜度問題:o(m+n); m為桶的個數(即申請的陣列長度),n為待排序數的個數。所以該排序很快,但是缺點——浪費記憶體,無法排序小數。

最快最簡單的排序 「桶排序」

先來看乙個問題 有一列 0 10 隨機數 5 3 5 2 8 現在要求將它們按照從先到大的順序或從大到小的順序排列,如何去做?在這裡可以需借助乙個一維陣列就可以解決這個問題,首先申請乙個大小為11 的陣列int a 11 編 號從a 0 a 10 剛開始的時候,將a 0 a 10 都初始化為0,然後...

最快最簡單的排序 桶排序

我們學過很多的排序方法,氣泡排序 希爾排序 快速排序 今天我想說的是一種應用起來最快最簡單的排序 桶排序。當你隨機輸入幾個數,進行從小到大 從大到小 依次排序 你會有什麼方法?這裡只需乙個一維陣列即可。申請乙個長度為n的一維陣列。就相當於定義n個變數arr 0 arr n 1 剛開始都初始化為0,表...

最快最簡單的排序 桶排序

最快最簡單的排序 桶排序 在我們生活的這個世界中到處都是被排序過的。站隊的時候會按照身高排序,考試的名次需要按照分數排序,網上購物的時候會按照 排序,電子郵箱中的郵件按照時間排序 總之很多東西都需要排序,可以說排序是無處不在。現在我們舉個具體的例子來介紹一下排序演算法。首先出場的我們的主人公小哼,上...