演算法 排序之桶排序詳解

2021-08-02 14:46:43 字數 736 閱讀 5225

桶排序是排序中的乙個重要的方法,原理就是定義乙個陣列,初始化成為全0

遇到乙個數字,就在這個範圍內找到這個數字並把這個數字下面的數字變為1 在遇到就再加上1

最後遍歷一遍,如果為幾就表示這個數字出現幾次,沒有就表示這個數字沒有出現

**的實現:

//如果需要對資料範圍在 0~1000 之間的整數進行排序,

//我們需要 1001 個桶,來表示 0~1000

//之間每乙個數出現的次數,

#define _crt_secure_no_deprecate

#include#include#includevoid bucketsort(int *bucket, int n)

printf("桶排序後:");

for (i = 0; i <= 1000; i++) }

getchar();

getchar();

return;

}int main()

int n = 0;

printf("請輸入數的個數:\n");

scanf("%d", &n);

bucketsort(bucket, n);

system("pause");

return 0;

}

執行的結果:

排序演算法之桶排序

1 設定乙個定量的陣列當作空桶子 2 尋訪序列,並且按照要求把記錄乙個乙個放到對應的桶子去 3 對每個不是空的桶子進行排序。4 從不是空的桶子裡把專案再放回原來的序列中。include include include include typedef struct node node,list voi...

排序演算法之桶排序

桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 根據最大值最小值建立多個桶,確定各個桶之間的跨度,然後遍歷原始數列,把各元素放到對應的桶中,先是每個桶內的元素...

排序演算法之桶排序

桶排序 bucket sort 或所謂的箱排序,是乙個排序演算法,工作的原理是將陣列分到有限數量的桶子裡。每個桶子再個別排序 有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序 桶排序是鴿巢排序的一種歸納結果。當要被排序的陣列內的數值是均勻分配的時候,桶排序使用線性時間 n 但桶排序並不...