均匀随机排列
概述
均匀随机排列 是指 个元素的 种排列中,每一种排列以等概率 出现的随机排列。生成均匀随机排列是随机化算法的基本操作之一。
定义
均匀随机排列
给定 个元素的集合,一个均匀随机排列(uniform random permutation)是从该集合的所有 种排列中,按照均匀分布随机选取的一种排列。即每种排列被选中的概率均为 。
核心性质
- 排列总数: 个元素共有 种不同的排列。
- 均匀性要求:每种排列必须以恰好 的概率产生,这是验证排列算法正确性的关键标准。
- 两种经典生成方法:
- PERMUTE-BY-SORTING:为每个元素分配一个随机优先级,然后按优先级排序。时间复杂度 (受排序算法限制),需要额外的随机数生成。
- RANDOMIZE-IN-PLACE(原址排列):在位置 处,从 中随机选取一个元素与位置 的元素交换。时间复杂度 ,空间复杂度 ,是更优的方法。
- 引理 5.3:RANDOMIZE-IN-PLACE 过程产生均匀随机排列。
- 引理 5.4:在 RANDOMIZE-IN-PLACE 中,对每个 , 成为原来第 个元素的概率恰好为 。
章节扩展
第5章:概率分析与随机化算法
- 5.3 随机化算法 详细介绍了 PERMUTE-BY-SORTING 和 RANDOMIZE-IN-PLACE 两种方法,并给出了正确性证明。
- RANDOMIZE-IN-PLACE 是 随机化算法 中随机化快速排序的基础操作。