?? lradixsort.cpp
字號:
void RadixSort2(elemtype x[], int n, int m)
/*對記錄x[0]--x[n-1]進行關鍵字為m位整型值的基數排序*/
/*桶結構為鏈式存儲結構*/
{
int i,j,k,l,Power;
radixnode *p, *q;
radixtype Head[10];
Power=1;
/*進行m次排序*/
for(i=0;i<m;i++)
{
if(i==0) Power=1;
else Power=Power*10;
/*初始化桶*/
for(j=0;j<10;j++)
{
Head[j].tub = j;
Head[j].link=NULL;
}
/*將記錄按關鍵字第k位的大小放到相應桶的鏈中*/
for(l=0;l<n;l++)
{
k = x[l].key/Power - (x[l].key/(Power*10))*10;
q = (radixnode *)malloc(sizeof(radixnode));
q->key = x[l].key;
q->next = NULL;
p = Head[k].link;
if(p==NULL)
{
Head[k].link = q;
}
else
{
while(p->next != NULL) p=p->next;
p->next = q;
}
}
/**按照鏈的順序收回各記錄/
l=0;
for(j=0;j<10;j++)
{
p = Head[j].link;
while(p != NULL)
{
x[l].key = p->key;
l++;
q = p->next;
free(p);
p=q;
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -