最快排序之 桶排序

2021-07-04 20:48:26 字數 455 閱讀 6991

桶排序的基本思想就是利用空間換時間,如果將一最大值為100000的一組數進行排序,最簡單粗暴的方法就是桶排序,建立乙個100001這麼大的陣列,每一位代表乙個乙個數,初始化時將陣列全部賦值為零,一次讀入需要排序的數,如果讀入5278則將num[5278]++;代表出現過一次5278。輸入結束之後,從1開始遍歷陣列,如果不為0則輸出,最後輸出的就是乙個有序的序列。

這種思想在bit圖也用到了,只是需要用的空間變小了,因為乙個byte中有8個bit,每個bit代表乙個數,之後進行賦值排序等等,在處理大資料的時候有事會用的到,當然這不是真正的桶排序,真正的桶排序比這複雜的要多。

#include "stdio.h"

#include "string.h"

int main()

for(i=1;i<=count;i++)

return 0;

}

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

先來看乙個問題 有一列 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,表...

最快最簡單的排序 桶排序

只需借助乙個一維陣列,對一組數進行簡單的桶排序。實現 初始化一維陣列 10個元素 每個元素對應的下標用來記錄 0 9 以內待排序數字出現的次數,如a 5 3,代表5數字出現了3次,a 2 0,代表2數字出現了0次 錄入要排序的一組數字,每乙個數字對應陣列下標,用該陣列元素記錄出現的次數 列印每個陣列...