题解 | #合并两个有序的数组#

合并两个有序的数组

https://www.nowcoder.com/practice/89865d4375634fc484f3a24b7fe65665

/**
 * 
 * @param A int整型一维数组 
 * @param ALen int A数组长度
 * @param B int整型一维数组 
 * @param BLen int B数组长度
 * @return void
 */
 void Sort(int* arr,int n)
 {
    int gap=n;
    while(gap>1)
    {
        gap/=2;
        for(int i=0;i<n-gap;i++)
        {
            int end=i;
            int tmp=arr[end+gap];
            while(end>=0)
            {
                if(arr[end]>tmp)
                {
                    arr[end+gap]=arr[end];
                    end-=gap;
                }
                else 
                {
                    break;
                }
            }
            arr[end+gap]=tmp;
        }
    }
 }
void merge(int* A, int ALen, int m, int* B, int BLen, int n) 
{
    // write code here
    //合并
    for(int i=0;i<n;i++)
    {
        *(A+m+i)=*(B+i);
    }
    //排序
    Sort(A,m+n);

}

全部评论

相关推荐

03-31 14:46
已编辑
门头沟学院 Web前端
励志成为双港第一ja...:这其实很正常,离的太远了,他认为你不会来,就为了混个面试,而且成本很高,实习生都优先选本地高校。吃了地域的亏,所有很多时候地域可能比院校层次更重要。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务