1. 程式人生 > >第2章 排序 || 第15節 有序數組合並練習題

第2章 排序 || 第15節 有序數組合並練習題

合並 write return 填充 同時 python 其中 strong class

  • 題目

有兩個從小到大排序以後的數組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節 有序數組合並練習題