快速排序:随机快速排序VS中值快速排序
最近偶然做到快速排序的习题,找了几本书参考,发现书上说的有些不一样?
有的说,快速排序算法的性能取决于划分的对称性,因此可以设计出采用随机选择划分基准的算法,因为划分基准的选择是随机的,从而可以期望划分是较对称的。
这么说的有:
《算法与数据结构(第二版)》傅清祥,王晓东
《计算机算法设计与分析》王晓东
《程序设计实践》Brian W.Kernighan,Rob Pike
可是《程序设计实践》的译者裘宗燕却在页脚上加了个注释,说“这个说法是错误的,从概率上看,采用随机选取方法并不能减少不平均划分的可能性”。
而另一本《数据结构算法与应用--C++语言描述》Sartaj Sahni则说,找仨元素,用它们中不大不小的那个作为划分基准,可以得到更平均的划分。
到底谁说的对?-_-