您好,匿名用户
随意问技术百科期待您的加入

quickperm全排列算法分析解释

0 投票

这个算法用来生成N个元素的可重复全排列。

算法官网:http://www.quickperm.org/

算法描述:

The Counting QuickPerm Algorithm:

   let a[] represent an arbitrary list of objects to permute
   let N equal the length of a[]
   create an integer array p[] of size N to control the iteration       
   initialize p[0] to 0, p[1] to 0, p[2] to 0, ..., and p[N-1] to 0
   initialize index variable i to 1
   while (i < N) do {
      if (p[i] < i) then {
         if i is odd, then let j = p[i] otherwise let j = 0
         swap(a[j], a[i])
         increment p[i] by 1
         let i = 1 (reset i to 1)
      } // end if
      else { // (p[i] equals i)
         let p[i] = 0 (reset p[i] to 0)
         increment i by 1
      } // end else (p[i] equals i)
   } // end while (i < N)
用户头像 提问 2013年 11月4日 @ Virgo 上等兵 (284 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 29 阅读
0 投票
1 回复 31 阅读
用户头像 提问 2013年 11月6日 @ Lulu 上等兵 (293 威望)
0 投票
1 回复 34 阅读
用户头像 提问 2013年 10月27日 @ Malphite 上等兵 (306 威望)
0 投票
1 回复 6 阅读
用户头像 提问 2014年 5月14日 @ Hecarim 上等兵 (361 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2012年 12月1日 @ Malphite 上等兵 (306 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...