博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
怎样合并排序数组(How to merge 2 sorted arrays?)
阅读量:6581 次
发布时间:2019-06-24

本文共 801 字,大约阅读时间需要 2 分钟。

Question: We have 2 sorted arrays and we want to combine them into a single sorted array.

Input: arr1[] = 1, 4, 6, 8, 13, 25    ||     arr2[] = 2, 7, 10, 11, 19, 50

Output: 1, 2, 4, 6, 7, 8, 10, 11, 13, 19, 50

最简单的方法之一就是把两个数组复制到一个新的数组中,对这个新的数组进行排序。但这样就不能利用原来的两个数组已经排好序这个条件了。

我们需要一个不一样的方法。下面是可行方法之一:

  • 为两个数组初始化两个变量作为索引。
  • 假设i指向arr1[],j指向arr2[]。
  • 比较arr1[i],arr2[j],哪个小就将那个复制进新的数组,并增加相应的系数。
  • 重复上述步骤直到i和j都到达数组尾部。

相应的算法实现:

#include
//a function to merge two arrays//array1 is of size 'l'//array2 is of size 'm'//array3 is of size n=l+mvoid merge(int arr1[], int arr2[], int arr3[], int l, int m, int n){ //3 counters to point at indexes of 3 arrays int i,j,k; i=j=k=0; //loop until the array 1 and array 2 are within bounds while(i

转载于:https://www.cnblogs.com/programnote/p/4723468.html

你可能感兴趣的文章
框架搭建
查看>>
关于增强for循环
查看>>
冒泡排序法
查看>>
选择排序
查看>>
Valid Phone Numbers
查看>>
ffmpeg 安装
查看>>
Django基础之中间件
查看>>
VS code
查看>>
MySQL学习基础
查看>>
我们都是程序员(四个男人三个女人的故事下)
查看>>
在升级版数据的收集和赋值。只针对上篇文章。
查看>>
发布订阅模式
查看>>
linux安装ActiveMQ
查看>>
ubuntu 中文变成小方框 口
查看>>
mybatis的decimal精度缺失
查看>>
JMeter快速入门
查看>>
1034: [ZJOI2008]泡泡堂BNB
查看>>
POJ 3261 Milk Patterns (后缀数组,求可重叠的k次最长重复子串)
查看>>
软件工程概论7
查看>>
win7 IIS发布项目遇到的问题
查看>>