实现随机Quicksort的两种方法,
方法1:选择随机数据
方法2:生成输入的随机排列并将其输入到选择第一个元素作为枢轴的快速排序
就随机化而言,method1与method2相同吗?
注意:看起来像Method2同样可能产生所有分区,但method1却没有。因此,如果它们不相同,那么我想了解性能影响是什么。
答案 0 :(得分:2)
是。在任何一种情况下,任何特定元素被选为枢轴的概率是1 / len(输入)。 (但是,第二种方法几乎肯定会因常数因子而变慢,因为它需要额外的线性传递才能生成随机排列。)