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
投稿

猜你喜欢

  • django搭建项目配置环境和创建表过程详解

    2022-10-26 19:03:25
  • pycharm打包py项目为.exe可执行文件的两种方式

    2022-03-26 11:51:51
  • 利用Python绘制一个可爱的米老鼠

    2022-01-29 14:34:30
  • Go 中 time.After 可能导致的内存泄露问题解析

    2024-02-03 13:05:16
  • Python字典和列表性能之间的比较

    2022-08-08 12:49:58
  • Python bsddb模块操作Berkeley DB数据库介绍

    2024-01-18 05:32:02
  • 利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统

    2022-03-12 16:00:44
  • SQLServer 2005 实现数据库同步备份 过程-结果-分析

    2012-07-11 15:56:55
  • Python删除列表中重复元素的七种方法举例

    2021-08-16 06:10:15
  • 微信小程序学习笔记之本地数据缓存功能详解

    2024-04-22 12:42:49
  • Python实现随机漫步功能

    2021-02-05 20:44:45
  • 解决Tensorflow安装成功,但在导入时报错的问题

    2022-03-05 18:39:27
  • vue一步到位的实现动态路由

    2024-05-21 10:16:05
  • Django+Ajax异步刷新/定时自动刷新实例详解

    2023-11-29 11:28:15
  • vue实现Input输入框模糊查询方法

    2024-04-28 09:20:46
  • Python如何求取逆序数

    2022-07-16 07:16:57
  • Python可视化程序调用流程解析

    2022-07-18 15:53:07
  • MySQL触发器trigger的使用

    2024-01-23 15:08:23
  • python中split(), os.path.split()和os.path.splitext()的用法

    2022-03-23 09:06:40
  • Python实现获取照片的地理定位信息

    2023-06-30 01:39:54
  • asp之家 网络编程 m.aspxhome.com