最快最簡答的排序 桶排序

2021-10-02 09:33:22 字數 619 閱讀 7598

10個數排序時

首先我們需要申請乙個大小為11的陣列 int a[11]。

剛開始時我們將a[0]~a[10]都初始化為0,表示這些數還沒出現過。

例如a[0]=0表示還目前沒有出現0,同理a[1]=0表示目前還沒出現1…a[10]=0

表示目前還沒出現10.

下面開始處理10個數,第乙個是10,我們就將對應的a[10]的值在原來的基礎上加1,即將a[10]的值從0改為1,表示10出現過一次。第二個數是3,我們就將對應的a[3]的值在原來的基礎上加1,即將a[3]的值從0改為1,表示3出現過一次。以此類推。

接下來只需要將出現過的分數列印出來就可以了,出現幾次就列印幾次。

```c

#includeint main()

for(i=0;i<=10;i++)

for(i=0;i<=10;i++)

for(j=1;j<=a[i];j++)//出現幾次就列印幾次

printf("%5d",i);

getchar();getchar();//檢視輸出的結果

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次 錄入要排序的一組數字,每乙個數字對應陣列下標,用該陣列元素記錄出現的次數 列印每個陣列...