📄 merge.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 + -