快速排序:随机快速排序VS中值快速排序

fiveyes 2003-03-15 10:28:04
最近偶然做到快速排序的习题,找了几本书参考,发现书上说的有些不一样?
有的说,快速排序算法的性能取决于划分的对称性,因此可以设计出采用随机选择划分基准的算法,因为划分基准的选择是随机的,从而可以期望划分是较对称的。
这么说的有:
《算法与数据结构(第二版)》傅清祥,王晓东
《计算机算法设计与分析》王晓东
《程序设计实践》Brian W.Kernighan,Rob Pike
可是《程序设计实践》的译者裘宗燕却在页脚上加了个注释,说“这个说法是错误的,从概率上看,采用随机选取方法并不能减少不平均划分的可能性”。
而另一本《数据结构算法与应用--C++语言描述》Sartaj Sahni则说,找仨元素,用它们中不大不小的那个作为划分基准,可以得到更平均的划分。
到底谁说的对?-_-
...全文
232 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fiveyes 2003-03-16
  • 打赏
  • 举报
回复 1
谢谢。
看来老虎也有打盹的时候啊!^_^
bjay 2003-03-15
  • 打赏
  • 举报
回复 1
裘宗燕的应该正确一些。
因为:快速排序的性能的确取决于划分的对称性,这句是正确的。但为能推出:“划分基准的选择是随机的”这句来。
从概率的角度上来讲,初始序列本身就应该是随机的。如果不是随机的,那也就不应该用快排了。
如果初始序列是随机的,你再随机选取,只能增加算法的时间,不会增加随机程度。

所以:裘宗燕说的更正确一些。
ZhangYv 2003-03-15
  • 打赏
  • 举报
回复
裘宗燕和Sartaj Sahni说的较正确些

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧