熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 數據結構 >> 正文

數據結構考研分類復習真題 第十章 答案[38]

2013-11-15 15:17:46  來源: 數據結構 

     void sort (RecType K[]int n)
  { for (i=;i<=n;i++) T[i]=i;
  for (i=;i<n;i++)
  for (j=;j<=ni;j++)
  if (K[T[j]]>K[T[j+]]) {t=T[j];T[j]=T[j+];T[j+]=t;}
  }//sort

  [算法討論] 上述算法得到輔助地址表T[i]的值是排序後K的第i個記錄要使序列K有序則要按T再物理地重排K的各記錄算法如下

  void Rearrange(RecType K[]int T[]n)
  //對有n個記錄的序列K按其輔助地址表T進行物理非遞減排序
  {for(i=;i<=n;i++)
  if (T[i]!=i)
  {j=i; rc=K[i];       //暫存記錄K[i]
  while (T[j]!=i)     //調整K[T[j]]到T[j]=i為止
  {m=T[j]; K[j]=K[m]; T[j]=j; j=m;}
  K[j]=rc; T[j]=j;    //記錄R[i]到位
  }//if
  }//Rearrange

[]  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/sjjg/201311/23179.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.