算法思想

时间:2021-08-19
本文章向大家介绍算法思想,主要包括算法思想使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

俩个顺序数组归并

给出一个整数数组 和有序的整数数组 ,请将数组 合并到数组 中,变成一个有序的升序数组
注意:
1.可以假设 数组有足够的空间存放 数组的元素, 和 中初始的元素数目分别为 和 ,的数组空间大小为 + 
2.不要返回合并的数组,返回是空的,将数组 的数据合并到里面就好了
3.数组在[0,m-1]的范围也是有序的
例1:
A: [4,5,6,0,0,0],m=3
B: [1,2,3],n=3
合并过后A为:
A: [1,2,3,4,5,6]
class Solution {
public:
    void merge(int A[], int m, int B[], int n) {
        int tailA=m-1;
        int tailB=n-1;
        int tail=m+n-1;
        while(tailA!=-1&&tailB!=-1)
        {
            if(A[tailA]>B[tailB])
            {
                A[tail]=A[tailA];
                tail--;
                tailA--;
            }
            else
            {
                A[tail]=B[tailB];
                tail--;
                tailB--;
            }
        }
        if(tailB>=0)
        {
            for(int i=0;i<=tailB;i++){
                A[i]=B[i];
            }
        }
    
    }
};

原文地址:https://www.cnblogs.com/handsometaoa/p/15161509.html