OJ练习20——T88 Merge sorted array

把有序序列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];
        }
    }

【总结】

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

posted on 2015-04-21 08:49  EmmaLi  阅读(122)  评论(0)    收藏  举报

导航