天天看點

算法研究:如何将數組中的重複資料查找出來

在網上看到一個面試題,是怎麼在10萬個手機号碼中把重複的号碼篩選出來。

想了一下,可以先使用

快速排序法

進行排序,然後再逐條循環和相鄰号碼比對,這樣重複的号碼就出來了。

如果分段進行的話可以适當減小算法的複雜度。而且可以通過多線程充分利用CPU性能。

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

var result = 号碼.MapReduce(t=>

{

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

},

(key, values)=>

  return values.Count();

});

然後循環字典result,把value>1的資料取出來就可以了

繼續閱讀