首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么在随机数数组中找到所有的相同数

2012-03-01 
如何在随机数数组中找到所有的相同数在一个随机数数组中,如何找到任意两个或更多的相同数?我能想到的方法

如何在随机数数组中找到所有的相同数
在一个随机数数组中,如何找到任意两个或更多的相同数?    
 
  我能想到的方法是先对数组排序,然后再依次判断并找到相同的数.但对于巨大的数组(如大于100000),效率太差了.有没有更好的方法??

[解决办法]
排序的效率比较低,复杂度最起码是O(n^2)。你可以用个二维数组,记录随机数的值和出现的个数,复杂度就是O(n).这是牺牲空间获取时间。

[解决办法]

无须预先对原始随机数组排序,让它们维持原来的随机次序,
而到用的时候,从数组一个一个地取出,这样保证随机,
同时,再把取出的数进行插入排序.

由于取出数后总是排序的,所以每取一个新的数,就可用二分法
检查该数是否已在这个序列中,如果未出现在此序列中,就加入,
否则,就表明此数已经用过,就应从数组中另取一个数来试.


热点排行