第2章 排序 || 第15节 有序数组合并练习题

Posted ranjiewen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第2章 排序 || 第15节 有序数组合并练习题相关的知识,希望对你有一定的参考价值。

  • 题目

有两个从小到大排序以后的数组A和B,其中A的末端有足够的缓冲空容纳B。请编写一个方法,将B合并入A并排序。

给定两个有序int数组AB,A中的缓冲空用0填充,同时给定A和B的真实大小int n和int m,请返回合并后的数组。

  • 解析

class Merge {
public:
    int* mergeAB(int* A, int* B, int n, int m) {
        // write code here
        while(n>0&&m>0)
        {
            if(A[n-1]>B[m-1])
            {
                A[m+n-1]=A[n-1];
                n--;
            }
            else
            {
                A[m+n-1]=B[m-1];
                m--;
            }            
        }
        while(m>0)
        {
            A[m-1]=B[m-1];
            m--;
        }
        return A;
    }
};

 - python

# -*- coding:utf-8 -*-
class Merge:
    def mergeAB(self, A, B, n, m):
        # write code here
        i,j=n,m
        while i>0 and j>0:
            if A[i-1]>B[j-1]:
                A[i+j-1]=A[i-1]
                i=i-1
            else:
                A[i+j-1]=B[j-1]
                j=j-1
        if j>0:
            A[:j]=B[:j]
        return A

 

以上是关于第2章 排序 || 第15节 有序数组合并练习题的主要内容,如果未能解决你的问题,请参考以下文章

第2章 排序 || 第20节 相邻两数最大差值练习题

第2章 排序 | 第10节 计数排序练习题

第2章 排序 | | 第17节 三色排序练习题

第2章 排序 | 第14节 重复值判断练习题

第二章 排序 || 第18节 有序矩阵查找练习题

排序练习题:有序数组合并