b*****y 发帖数: 547 | 1 今天看到了5个版本的,都说自己是hoare的
主要的疑惑在于, 那个pivot,有些版本,放在temp variable里,儿而有些版本,把
它移来移去的,有些版本是从左边第一个算pivot,有些是右边算pivot
到底哪个是hoare版本? 那个pivot把它放在temp里,最后在copy回update的位置,可
否?
谢谢 |
S**I 发帖数: 15689 | 2 Wikipedia is your friend:
http://en.wikipedia.org/wiki/Quicksort
【在 b*****y 的大作中提到】 : 今天看到了5个版本的,都说自己是hoare的 : 主要的疑惑在于, 那个pivot,有些版本,放在temp variable里,儿而有些版本,把 : 它移来移去的,有些版本是从左边第一个算pivot,有些是右边算pivot : 到底哪个是hoare版本? 那个pivot把它放在temp里,最后在copy回update的位置,可 : 否? : 谢谢
|
j*****y 发帖数: 1071 | 3 感觉最好的版本应该是 像 sort 荷兰旗那样的,把和 pivot一样的放在一起。
【在 b*****y 的大作中提到】 : 今天看到了5个版本的,都说自己是hoare的 : 主要的疑惑在于, 那个pivot,有些版本,放在temp variable里,儿而有些版本,把 : 它移来移去的,有些版本是从左边第一个算pivot,有些是右边算pivot : 到底哪个是hoare版本? 那个pivot把它放在temp里,最后在copy回update的位置,可 : 否? : 谢谢
|
b*********h 发帖数: 103 | 4 哈哈 想起以前在机房 每个人写的快排都不一样。。。 |
w****x 发帖数: 2483 | 5
pivot取哪个有区别吗,反正都要swap到底一个, 要注意的是最后swap回来的时候下标
别弄错了
【在 b*****y 的大作中提到】 : 今天看到了5个版本的,都说自己是hoare的 : 主要的疑惑在于, 那个pivot,有些版本,放在temp variable里,儿而有些版本,把 : 它移来移去的,有些版本是从左边第一个算pivot,有些是右边算pivot : 到底哪个是hoare版本? 那个pivot把它放在temp里,最后在copy回update的位置,可 : 否? : 谢谢
|
O******i 发帖数: 269 | 6 pivot的位置确实不是关键,双指针交换,并向中间移动才是Hoare划分方法的本质。
Hoare最早版本的伪代码,在CLRS的章节后习题里头有介绍。 |
b*****y 发帖数: 547 | 7 每次交换完了的pivot
我存放在temp varl里
而不是插来插去的
行吗 |