首页 > 其他 > 详细

OJ练习20——T88 Merge sorted array

时间:2015-04-21 09:27:57      阅读:235      评论:0      收藏:0      [点我收藏+]

把有序序列B合并到有序序列A中,A的大小大于m+n。

特别的地方在于,不是返回一个新数组。

【思路】

可以开一个local数组,归并两串,再把结果赋给A。但不是很喜欢这种做法。(因为太简单了)

插入排序是把当前元素插入到前面已经有序的m个元素中,与题目环境很符合。

【other code】

void merge(int A[], int m, int B[], int n) {
        int i,j;
        if(m==0)
            for(i=0; i<n; i++)
                A[i]=B[i];
        for(j=0; j<n; j++)
        {
            for(i=m-1+j; i>=0; i--)
            {
                if(A[i]>B[j])
                    A[i+1]=A[i];
                else break;
                
            }
            A[i+1]=B[j];
        }
    }

【总结】

插入排序是从后向前遍历,这是我总是不能掌握的地方_(:зゝ∠)_

OJ练习20——T88 Merge sorted array

原文:http://www.cnblogs.com/ketchups-notes/p/4443320.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!