两个有序数组相加得到一个有序数组
发布时间
阅读量:
阅读量
两个已排序数组的整合以生成单一有序数组
1. 题目描述
已知数组a与数组b各自均保持有序状态,现需寻找一种高效策略,将二者整合为单一数组,同时确保最终生成的数组依然维持有序特性。
2. 从后往前合并
这道题是师兄在电话面试阿里巴巴时被问到的问题。接下来我们来探讨一下解决思路~
假设数组a的长度足够,可以在该数组的基础上进行两个数组的合并。我们采用的策略是从数组末尾开始向前进行合并操作。
在每次合并过程中,需要比较数组a和数组b当前元素的大小,将较大的数值向后移动一位,需要注意的是,这里必须执行的是后移操作!
为何选择从后往前的方式?其根本原因在于这样能够更方便地实现后移操作,因为较大的数值通常位于数组的后面。
以下是具体的程序实现:
#include<iostream>
using namespace std;
#define MAX 100
int main()
{
int a[MAX]={1,3,5,7,9};
int b[MAX]={2,4,6,8};
int len1=5, len2=4;
int p1=len1-1, p2=len2-1; //从后往前遍历
int
全部评论 (0)
还没有任何评论哟~
