ch8_10.txt
上传用户:lgb298
上传日期:2013-03-22
资源大小:1025k
文件大小:1k
源码类别:

软件工程

开发平台:

C/C++

  1. #define D 3
  2. typedef struct node
  3. {  int key;
  4.    float info;
  5.    int link;
  6. }JD;
  7. int radixsort(JD r[],int n)
  8. {  int i,j,k,t,p,rd,rg,f[10],e[10];
  9.    for(i=1;i<n;i++)  r[i].link=i+1;
  10.    r[n].link=0;
  11.    p=1; rd=1; rg=10;
  12.    for(i=1;i<=D;i++)
  13.   {  for(j=0;j<10;j++)
  14.      {  f[j]=0;
  15.         e[j]=0;
  16.      }
  17.      do{
  18.           k=(r[p].key%rg)/rd;
  19.           if(f[k]==0)
  20.               f[k]=p;
  21.           else 
  22.               r[e[k]].link=p;
  23.           e[k]=p;
  24.           p=r[p].link;
  25.        }while(p>0);
  26.      j=0;
  27.      while(f[j]==0) j++;
  28.      p=f[j];  t=e[j];
  29.      for(k=j+1;k<10;k++)
  30.         if(f[k]>0)
  31.         {  r[t].link=f[k];
  32.            t=e[k];
  33.         }
  34.      r[t].link=0;
  35.      rg*=10;
  36.      rd*=10;
  37.   }
  38.    return(p);
  39. }