C#中求数组并集的算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中求数组并集的算法相关的知识,希望对你有一定的参考价值。

例如char[] aa='a','b','a','d' char[] bb='a','c','d','z',求一个C#的算法,实现aa并bb,得出cc[]='a','b','c','d','z',谢谢,这两天看各种算法看的有点乱,望各位大侠指教~~

C#3.0 可以使用以下方法

char[] aa='a','b','a','d';
char[] bb='a','c','d','z';
var tt=aa.Union(bb);

前提using System.Linq;
参考技术A 还用什么算法呀
记得有个集合叫HashSet吧,不允许重复值的集合
把那两个数组的元素都添加进去不就得了
参考技术B 没学过你所说的什么并集的,不过你可以试一下,用索引将每个值找到,然后判断两个数组中的值是否相等,如果不相等就将不相等的加到你想加的组里面的,不过这只是想法,至于怎么实现没想过的,你可以试一下的!

算法第二章上机实践报告

  1. 实践题目:两个有序序列的中位数
  2. 问题描述:

    已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列,的中位数指A?(N?1)/2??的值,即第?个数(A?0??为第1个数)。

  3. 算法描述   输入两个非降序数列到两个长度相同的数组,再初始化一个新的数组,长度为两个数组的总和,将两个数列重新按照非降序排列,存入新数组中,再输出数组最中间的数字。
  4. 算法时间及空间复杂度分析(要有分析过程) 两长度相同的数组,逐一比较,直到比较到某一数组的最后一个数字,将另一数组剩下的数字插入新的数组,所以时间复杂度为O(n)。整个算法需要用到两个长度为n 的数组,一个 长度为2n的数组,所以空间复杂度为O(n)

  5. 心得体会(对本次实践收获及疑惑进行总结)疑惑:第三道题中并集序列为什么不需要去重? 实践收获:在与同学一起讨论的时候,能学习到自己忽略的一些知识,有些知识印象模糊或者理解不透彻的知识经过两人的讨论以及查证能够更加清晰。

以上是关于C#中求数组并集的算法的主要内容,如果未能解决你的问题,请参考以下文章

利用go语言实现求数组交集的算法

算法第二章上机实践报告

PHP数组的几个操作,求并集,交集,差集,数组

大二上学期算法第二章上机实践

oracle中取交集差集和并集的语法

sql server中取交集差集和并集的语法