首页 > 试题广场 >

下列算法实现堆排序,HeapSort是主函数,请补齐空白处。

[问答题]
下列算法实现堆排序,HeapSort是主函数,请补齐空白处。(每空2分)
  #define MAXSIZE  1000J  //待排顺序表最大长度
  Typedef int KeyTYpe;  1/关键字类型为整型
  typedef struct {
    KeyType  key;  //关键字项
    InfoType  otherinfo;  //其它数据项
  } RedType;  //记录类型

   typedef  struct {
  RedType  r[MAXSIZE+1];   //r[0]闲置
  int           length;    //顺序表长度
  } SqList;               //顺序表类型

  typedef  SqList  HeapType;  //堆采用顺序表存储表示

  void HeapAdjust (HeapType &H, int s, int m)
  {//已知H.r[s..m]中记录的关键字除H.r[s].key 之外均满足堆的特征 //本函数自上而下调整H.r[s] 的关键字,使H.r(s..m]也成为一个大顶堆
 rc =H.r[s];             // 暂存
 r[$]for(j=2* s;j<=m;(1))
  {if(j<m &&  (2)  ) ++j; }if(rc.key >=H.rfj].key)   break;
H.r[s] =H.f[];  s=j; } (3) } void HeapSort(HeapType  &H) //对顺序表H进行推排序 { for (i=H.length/2;i>0;i) HeapAdjust____ (4)____ );
  for (=H.length;iDl;i) { H.r[l]-H.r[i]; HeapAdjust(___ (5)_____ ): } }

这道题你会答吗?花几分钟告诉大家答案吧!