演算法筆記 基數排序

2021-06-25 08:02:34 字數 663 閱讀 9271

基數排序是一種資料格式相關的演算法,適用範圍有限,當資料位數較小時,基數排序法的時間複雜度近似為o(n),效率高於其它的穩定性排序演算法。

1. 演算法思想

以十進位制數為例,現將元素按個位出入一次基數桶,再按十位出入基數桶……直至按最高位出入基數桶,此時序列整體有序。

2. 時間複雜度

最好情況 o(d*(n + r)):d是資料位數,r是基數,如十進位制即為10

最壞情況 o(d*(n + r)):與待排序列的元素順序無關

3. 空間複雜度 o(n + r)

需要r個鍊錶指標,以及所有鍊錶共儲存n個元素

4. 穩定性

穩定。出入鍊錶都是按原始順序的,而且同值元素始終進入到相同的鍊錶

5. **實現(偽**)

因為涉及鍊錶操作,如果帶上鍊表實現過於冗長,因此只列出偽**

void radixsort(int *a, int n)

j = 0;

for (int k = 0; k < radix; ++k)

}}}

演算法筆記 基數排序

基數排序是一種資料格式相關的演算法,適用範圍有限,當資料位數較小時,基數排序法的時間複雜度近似為o n 效率高於其它的穩定性排序演算法。1.演算法思想 以十進位制數為例,現將元素按個位出入一次基數桶,再按十位出入基數桶 直至按最高位出入基數桶,此時序列整體有序。2.時間複雜度 最好情況 o d n ...

基數排序演算法

include stdafx.h include iostream include math.h using namespace std struct radixsort 建立迴圈鍊錶 radixsort creatlink else le ls ls new radixsort 為下乙個節點在堆記...

基數排序演算法

以下內容為程式 int quicksort int p,int n extern int insertsort int p,int n static int partition int p,int n,int m static int quick sort int p,int n 快速排序演算法在 ...