js随机永不重复数
时间:2011-04-25 19:26:00
比如说在1-3000之内生成随机永不重复数,
点击运行代码的时候请注意,此代码比较占用资源,
如果硬件配置比较菜请把count改小。
俺的电脑配置是Intel E2160+2G内存,一般,不算菜。所有测试在俺的电脑上运行
方案1:1531 毫秒
一般的思路是先创建一个1-3000的数组,每一次取出一个,然后让这个数组减少一个,
取一个,减少一个,这样就可以做到永不重复了。
方案2:297毫秒
但是方案1采用了slice方法,此方法重新生成数组,会大量占用内存和cpu运算,
效率很低,所以改良一下,从原始数组取出一个数,
然后让原始数组的这个位置赋值为null
这样下一次取数的时候判断如果为null就不取,直到不为null为止。
经过测试,可以显著提高效率
方案3:234毫秒
换一个思路,如果把原始数组origin打散,然后再依次打印,
这样也可以做到随机永不重复,而且效率更高,
因为方案2运行到越后面,原始数组为null的频率就越高,运算的次数就越多
方案2、3差不多的原因主要是因为打印的原因
标签:随机数,js
0
投稿
猜你喜欢
如何在不同版本的SQL Server中存储数据
2009-01-15 13:06:00
关于utf-8格式中截取中英文字符串长度无效的问题
2008-11-25 14:00:00
asp,php 和 jsp 比较 之我见
2007-08-10 13:35:00
CSS 设计中的黄金分割率应用
2008-11-12 12:17:00
如何修复MySQL数据库表
2009-03-20 13:24:00
使table也能overflow:hidden
2008-08-18 21:04:00
解析:校对确定 较为复杂的一些特殊情况
2008-12-17 16:54:00
如何在MySQL数据库中使用XML数据
2009-12-29 10:48:00
用Dreamweaver MX轻松操作表格
2009-05-29 18:41:00
Rel与CSS的联合使用
2010-02-20 13:03:00
ASP中生成文件的两种方式
2007-08-30 09:49:00
MySQL的命令行提示符及其表达的意思
2008-03-17 13:34:00
asp如何选择访问速度最快的站点?
2010-06-10 18:34:00
MS SQL7.0的数据迁移到MySQL上的一种方法
2008-11-01 16:59:00
5个提高你站点可读性的方法
2011-01-31 17:48:00
设计上的小细节
2010-06-24 21:44:00
使用 XML HTTP Request 对象[翻译]
2007-11-07 21:11:00
如何使用Index Server建立一个网站导航地图?
2010-06-05 12:39:00
浅说相册图片详情页面中大图的浏览方式
2009-02-01 18:34:00
Xml Http抓取数据时乱码问题解决
2008-04-24 11:16:00