DreamSea

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年6月14日

摘要: Linkhttp://blog.henix.info/blog/random-shuffle.html因为要用到随机乱序,所以看了下洗牌算法最近遇到这样一个问题:生成 1 - N 的随机排列。这是一个比较常见的问题,生成一个有限集合的随机排列的时候就要用到。一种 naive 的算法是:for i = 1..n do r = 1..n 之间的随机数 while (r 已经被选择) do r = 1..n 之间的随机数 end ar[i] = r 将 r 标记为已被选择end 这种算法的问题是,当可供选择的数很少的时候(极端情况是只剩最后一个),大量的时间都浪费在 while 循... 阅读全文
posted @ 2013-06-14 10:30 DreamSea 阅读(3043) 评论(0) 推荐(0) 编辑