排列与逆排列的严格原地算法
1. 预备知识
在排列与逆排列的算法研究中,有一些基础概念和符号需要明确:
- 符号定义 :
- [n] 表示整数集合 {1, 2, ..., n} 。
- 对于函数 f 和非负整数 k , f^k(x) 定义为:当 k = 0 时, f^k(x) = x ;否则, f^k(x) = f(f^(k - 1)(x)) 。若 f 是一个排列,则 f^(-1) 表示其逆排列, f^(-k)(x) = f^(-1)(f^(-k + 1)(x)) ( k > 0 )。
- log 表示以 2 为底的对数。
- 循环领导者问题 :给定一个在 [n] 上的排列 π ,通过一个能在常数时间内返回任意 π(i) 的预言机来表示。目标是为 π 的每个循环确定恰好一个元素作为领导者。所有算法都遵循从左到右的方案,依次考虑元素 i = 1, 2, ..., n ,通过考虑元素 i, π(i), π^2(i), ... 来测试当
超级会员免费看
订阅专栏 解锁全文
695

被折叠的 条评论
为什么被折叠?



