基數排序 次位優先演算法

2022-05-18 09:50:17 字數 1211 閱讀 2451

演算法描述

多關鍵字排序:

又比如123,主位是1,次衛是3。

123,46,791。 按照次位優先     次位:791,123,46

次次位:123,46,791

次次次位:46,123,791

具體實現

建立桶元素結點,用鍊錶實現。

建立桶頭尾結點結構體。

構造getdigit ( int x, int d )

函式 用來得到x的d位的數字

構造lsdradixsort( elementtype a, int n )

}收集(將每個桶的元素順序收集入

將list倒入a並釋放

1

#define maxdigit 4

2#define radix 10

3 typedef struct node *ptrtonode;

4struct

node5;

9//定義桶頭節點

10struct

headnode11;

15 typedef struct

headnode bucket[radix];

16/*

17x是所求的數,x是幾位數 d就是幾

18*/

19int getdigital(int x,int

d)20

27return

d;28}29

void lsdradixsort(elementtype a,int

n)30

4849

/*從最低位開始入桶

*/50

51for(d=1;d<=maxdigit;d++)

5269}70

71/*

收集*/

72 list=null;

73for(di=radix-1;di>=0;di--)

7481}82

}83/*將list倒入a並釋放空間

*/84

for(i=0;i)

8592 }

錯誤分析:1.將82行的{  放在了70行。

基數排序 次位優先 Python實現

先比較每個數字的低位,排好之後,再按更高位的數排序,以此類推 注意 高位沒有數字預設為0 1 初始預設最大位數為1位 找到最大值,更新最大位數 max num max seq while max num 10 max digit max digit 1for i in range max digit...

基數排序演算法

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 快速排序演算法在 ...