算法研究:如何将数组中的重复数据查找出来

在网上看到一个面试题,是怎么在10万个手机号码中把重复的号码筛选出来。

想了一下,可以先使用快速排序法进行排序,然后再逐条循环和相邻号码匹配,这样重复的号码就出来了。

如果分段进行的话可以适当减小算法的复杂度。而且可以通过多线程充分利用CPU性能。

 

 

使用mapreduce简直不要太容易了。

var result = 号码.MapReduce(t=>

{

  return new KeyValueClass(t.号码, 1);

},

(key, values)=>

{

  return values.Count();

});

然后循环字典result,把value>1的数据取出来就可以了

上一篇:云创“cStor云存储系统软件V2.0”获评2017年江苏省优秀版权作品二等奖


下一篇:思科1.83亿美元收购保密软件公司ScanSafe