c++之数组篇2:计算两个有序数组的交集

原创 2016年08月31日 15:49:56


#include <iostream>
//using namespace std;

int mixed(int arr1[],int n1,int arr2[],int n2,int* mix )
{
	int i = 0;
	int j = 0;
	int k = 0;
	//mix = new int[n1];
	while (i < n1 && j < n2)
	{
		if(arr1[i] == arr2[j])
		{
			mix[k++] = arr1[i];
			//k++;
			i++;
			j++;
		}
		else if (arr1[i]>arr2[j])
			j++;
		else if (arr1[i]<arr2[j])
			i++;
	}
	return k;
}
int main()
{	
	int *m  = NULL; //存储相同元素的指针
	int num;//存储两个数组相同元素个数
	int a[] = {0,1,2,3,4};
	int b[] = {1,3,5,7,9};
	int len1 = sizeof(a)/sizeof(a[0]);
	int len2 = sizeof(b)/sizeof(b[0]);
	m = new int[len1];
	num = mixed(a,len1,b,len2,m);
	printf("两数组相同元素个数:	%d\n",num);
	printf("相同元素为:\n");
	for(int i = 0;i < num;i++)
		printf("%d",m[i]);

	return 0;
}


最快速度求两个数组之交集算法

该题目来自58同城的二面,用最快速度求两个数组之交集算法。 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}。 算法一:在大多数情况,也就是一般的情况...
  • sdujava2011
  • sdujava2011
  • 2015年10月26日 17:18
  • 3989

求两个数组的交集、并集和差集算法分析与实现

一、数组内数据无序且可以重复 本文采用一种交换的方式来求出两个数组的并集,交集和差集,这种算法运算速度较快,内存消耗空间较少,是一个值得学习的好方法,另外,作者提醒您,重要的不是算法本身,而是该算...
  • tianmo2010
  • tianmo2010
  • 2013年06月05日 17:02
  • 6420

最快速度求两个数组之交集算法与hash

该题目来自58同城的二面,用最快速度求两个数组之交集算法。 比如A={6,2,4,1},B={2,9,4,3},那么A&B={2,4}。 算法一:在大多数情况,也就是一般的情况下,大家都能想...
  • Richard_More
  • Richard_More
  • 2016年04月04日 21:22
  • 6956

合并两个有序数组为一个有序数组

二、问题: 两个有序数组,合并成一个有序数组,假设第一个数组空间足够容纳两个数组。 分析: 考虑到a数组很大,可以直接在a数组上进行合并,但是要讲究效率。如果单纯从前往后合并,那么效率会非常低,...
  • suibianshen2012
  • suibianshen2012
  • 2016年07月06日 21:49
  • 1143

两个有序数组合并成一个有序数组

百度2012实习生校园招聘笔试题 数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序。要...
  • u010182186
  • u010182186
  • 2016年09月23日 11:10
  • 3492

两个有序数组合并成一个有序数组

思想:先依次比较两个数组,按照小的就传入新的数组。当这次比较完之后可能有一个数组的长度很长,留下一些数组,然后在新数组的末尾插入即可。 代码: public class ArraySort {...
  • paincupid
  • paincupid
  • 2015年08月19日 22:37
  • 3169

两个有序数组合并为一个有序数组

思想:先依次比较两个数组,按照小的就传入新的数组。当这次比较完之后可能有一个数组的长度很长,留下一些数组,然后在新数组的末尾插入即可。 代码:    1 class ArrayS...
  • ywq5914251
  • ywq5914251
  • 2012年12月16日 21:26
  • 188

两个有序数组合并成一个有序数组

两个有序数组合并成一个有序数组 1. 题目描述 数组a是有序的,数组b也是有序的,如何高效地合并它们成一个数组,并且新数组也是有序的? 2. 从后往前合并 ...
  • puqutogether
  • puqutogether
  • 2014年12月12日 16:34
  • 992

将两个数组并为一个有序数组

//将两个数组并为一个有序数组 #include #define N 6//数组打印函数 void Print(int *x) { int i; for(i=0; i...
  • qq_33586625
  • qq_33586625
  • 2017年04月24日 20:08
  • 174

将两个有序数组归并成一个有序数组

#include//归并函数的声明 void merge(int arr1[], int arr2[], int arr_result[]);int result_number = 0; int ar...
  • u014565127
  • u014565127
  • 2017年12月19日 10:39
  • 12
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++之数组篇2:计算两个有序数组的交集
举报原因:
原因补充:

(最多只允许输入30个字)