random.shuffle 原理
时间: 2023-07-12 13:04:14 浏览: 163
详解shuffle过程
`random.shuffle` 函数的原理是通过 Fisher-Yates 洗牌算法(也称为 Knuth 洗牌算法)来实现的。该算法的基本思路是:从序列末尾开始,依次将当前位置的元素与之前的随机位置上的元素交换位置,直到完成整个序列的遍历为止。
具体实现过程如下:
1. 从序列末尾开始,依次取出当前位置 i 上的元素;
2. 生成一个随机数 j,满足 i ≤ j < len(seq);
3. 将当前位置 i 上的元素与位置 j 上的元素交换;
4. 重复 1-3 步,直到完成整个序列的遍历。
该算法的时间复杂度为 O(n),其中 n 是序列的长度。
阅读全文