基数排序不需要进行记录关键字之间的比较,是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define MAX_NUM_OF_KEY 8
#define RADIX 10
#define MAX_SPACE 100
/*定义静态链表结点类型*/
typedef struct
{
int keys;
int next;
}SLCell;
/*定义静态链表类型*/
typedef struct
{
SLCell r[MAX_SPACE];
int keynum;
int recnum;
}SLList;
typedef int ArrType[RADIX];
void Distribute(SLCell *r,int i,ArrType f,ArrType e);
void Collect(SLCell *r,int i,ArrType f,ArrType e);
void RadixSort(SLList *L);
int ord(int keys,int i);
int main()
{
SLList *L;
L=(SLList *)malloc(sizeof(SLList));
int i;
printf("需排序的项数为:");
scanf("%d",&L->recnum);
printf("关键字位数为:");
scanf("%d",&L->keynum);
for(i=1;i<=L->recnum;i++)
{
printf("please input the number:");
scanf("%d",&L->r[i].keys);
}