将两个递增有序的数组合并为一个递增有序的数组

求用“//”注释每一行的意思,万分感谢,在线等
void MergeArr(int a[],int m,int b[],int n)
{
int i,j,k,flag; //定义变量
for(i = 0; i < n; i++) //循环
{
flag = 1; //循环条件
for(j = 0; j < m; j++)
{
if(b[i] < a[j]) //判断b数组小于a数组
{
for(k = m; k > j; k--)
a[k] = a[k - 1];
a[j] = b[i];
flag = 0;
break; //结束循环
}
}
if(flag) a[m] = b[i];
m++;
}

//这个方法的要旨是b数组的值插入a数组完成排序 最后得到的a数组就是目标数组
void MergeArr(int a[],int m,int b[],int n)
{
    //m和n应该对应着数组a和数组b的个数
    int i,j,k,flag;//i是数组b遍历时候下标 j是数据a遍历时候下表
    for(i = 0; i < n; i++)    
    {
        flag = 1;
        //数组b遍历
        for(j = 0; j < m; j++) 
        {
            //数组a遍历
            //如果b中遍历的值比a遍历的小 
            if(b[i] < a[j])
           {
                for(k = m; k > j; k--)
                {
                    a[k] = a[k - 1];//按照倒序赋值腾出一个a数组空位放置b数组遍历的值
                }
                a[j] = b[i];//把b数组中该值插入a数组对应位置
                flag = 0;//改变flag的值
                break;    //结束循环
            }
        }
        if(flag) a[m] = b[i];//如果flag值没改变 表示比b该值比a数组所有的值都大 直接插入
        m++;//a位置增加1
    }
}

温馨提示:答案为网友推荐,仅供参考