堆排序_大顶堆.txt

来自「数据结构用C语言实现的各种排序方法」· 文本 代码 · 共 15 行

TXT
15
字号
int sift(JD r[],int k,int m) //已知r[k...m]中除k之外均满足堆的定义,欲调整k后使r成为一个大顶堆
{  int i,j; 
   JD x;
   i=k;  x=r[i]; j=2*i;
   while(j<=m) 
   {  if((j<m)&&{r[j].key>r[j+1].key))  j++; //j为值较小的记录的下标
      if(x.key>r[j].key) //x应插入在i位置上
      {  r[i]=r[j];  
         i=j;
         j*=2;  //沿值较小的孩子结点向下筛选
      }
      else   j=m+1;
   }
   r[i]=x;  //插入
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?