思想:先把這組資料的個位排有序,再把十位排有序,再排百位、千位…
#include
#include
#include
#include
void
showarr
(int arr,
int len)
printf
("\n");
}int
getmaxnumfin
(int arr,
int len)
//找陣列中最大數,並求出最大數的位數
}printf
("max:%d\n"
,max)
;while
(max !=0)
return count;
}int
getfinnumber
(int val,
int pos)
//給出乙個資料,求出該資料對應位數的數字
void
radix
(int arr,
int len,
int fin)
;//每個桶中可插入元素的下標,當前桶中的元素
int arrindex =0;
int buckectindex =0;
for( i; i <
10;i++
)for
(i =
0; i < len; i++
)for
( i =
0; i <
10; i++)}
for( i =
0; i <
10; i++)}
void
radixsort
(int arr,
int len)
}int
main()
;int len =
sizeof
(arr)
/sizeof
(arr[0]
);showarr
(arr,len)
;radixsort
(arr,len)
;showarr
(arr,len)
;}
基數排序(桶排序)
1。什麼是基數排序 radix sort 基數排序 屬於分配式排序 distribution sort 又稱 桶排序 bucket sort 它是通過鍵值的各個位的值,將要排序的元素分配至某些 桶 中,達到排序的作用。2.它和歸併一樣,屬於穩定型演算法。public void radixsort i...
基數排序 桶排序
1.基數排序又稱桶排序,具體思想就是將數值當成陣列的下標儲存。2.將所有數值拿出個位來比較,例如值為m的就存入下標為m的陣列中。3.將比較後的陣列拿出即為按個位排序好的陣列,再將這個排序好的陣列按十位排序。4.比較完個十百千所有位數以後即排序完成。兩種 實現思路都是一樣的,實現方式1可直接改寫為c或...
桶排序 基數排序
c 實現的 桶排序 採用了模板技術。底層資料結構是 std map 其本質是優先佇列。時間複雜度是o m n 其中 m 是資料範圍的最大值,n 是資料量。額外的,當 m o n 時,時間複雜度是 o n include include using namespace std template voi...