⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 merge.c

📁 在当今算法中
💻 C
字号:
/*****************************************/
/*               一次归并算法            */
/*  文件名merge.c,函数名merge()          */
/*****************************************/
void merge(table *tabs,table *tabg,int u,int m,int v)
{
  int i,j,k,t;
  i=u;      /*i从第1段的起始位置开始,一直到最终位置m*/
  j=m+1;    /*j从第2段的起始位置开始,一直到最终位置v*/
  k=u;      /*k表示的是目标tabg的起始位置*/
  while(i<=m&&j<=v)
  {                            /*将两段有序元素中元素值较小的元素依次放入目标tabg中*/
    if(tabs->r[i].key<=tabs->r[j].key)
    {
      tabg->r[k].key=tabs->r[i].key; i++;
    }
    else
    {
      tabg->r[k].key=tabs->r[j].key; j++;
    }
    k++;
  }
  if(i<=m)      /*将第1段剩余元素放入目标tabg中*/
    for(t=i;t<=m;t++) tabg->r[k+t-i].key=tabs->r[t].key;
  else          /*将第2段剩余元素放入目标tabg中*/
    for(t=j;t<=v;t++) tabg->r[k+t-j].key=tabs->r[t].key;
}

⌨️ 快捷键说明

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