快排时,为什么不能是__quicksort(arr,l,p)?
来源:3-5 快速排序法 - Quick Sort
慕慕9414451
2017-11-16
请问老师,在快速排序时,为什么不能是__quicksort(arr,l,p)?尽管应该是p-1.但是用p会运行中断?这是为什么?
写回答
1回答
-
liuyubobobo
2017-11-17
因为每次partition之后,标定点p就会放在它应该在的位置:p之前的元素都比p小,p之后的元素都比p大,说明p已经在了将整个数组排好序后p应该在的位置。所以我们继续排序就不需要考虑p这个元素了,对arr[l, p-1]和arr[p+1, r]继续排序即可。
052017-11-17
相似问题