思想:要排序的資料的範圍為小於m的正整數。這樣,使用乙個大小為m的bucket陣列,陣列初始化為0。
bucket陣列的每個單元稱為「桶」。然後依次掃瞄待排序資料(a1,a2,a3,a4,……,ai),讀到ai的時候,bucket[ai]增加1。
這樣,待排序資料讀完後,掃瞄陣列bucket,列印出排序表即可。
void bucketsort (int *arr, int n)
總結:桶排序,當待排序數稀疏的時候,將會有大量的空桶,造成空間浪費。同樣,如果待排序數空間範圍很大,將會產生很多桶,
這樣勢必會占用大量空間。
思想:多趟桶排序,節省空間。首先通過最低有效位進行排序,然後是次低有效位……。
void radixsort(int *arr, int n)
}
總結:**總體思想是先放置,然後收集起來。再放置,在收集,通過這樣的方式,最終得到有序結果。
基數排序相對於桶排序,是以時間換空間。
桶排序與基數排序
桶排序的基本思想 假設有一組長度為n的待排關鍵字序列k 1.n 首先將這個序列劃分成m個的子區間 桶 然後基於某種對映函式 將待排序列的關鍵字k對映到第i個桶中 即桶陣列b的下標 i 那麼該關鍵字k就作為b i 中的元素 每個桶b i 都是一組大小為n m的序列 接著對每個桶b i 中的所有元素進行...
基數排序(桶排序)
1。什麼是基數排序 radix sort 基數排序 屬於分配式排序 distribution sort 又稱 桶排序 bucket sort 它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用。2.它和歸併一樣,屬於穩定型演算法。public void radixsort i...
基數排序(桶排序)
思想 先把這組資料的個位排有序,再把十位排有序,再排百位 千位 include include include include void showarr int arr,int len printf n int getmaxnumfin int arr,int len 找陣列中最大數,並求出最大數的...