66问答网
所有问题
关于c语言快速排序法的一个疑问 这个是算法的一部分,请问这里找到high小于基准值low大于基准值
关于c语言快速排序法的一个疑问
这个是算法的一部分,请问这里找到high小于基准值low大于基准值时为什么只用这样附一边的值就算交换了,这里交换是怎么实现的,可以麻烦解释一下么,谢谢
举报该问题
推荐答案 2015-10-27
这个算法应该是快速排序。
要了解快排,要了解快排序的两个重要特点,分别是主元pivot和划分。
快速排序的思想是随机选择一个pivot。
划分的过程就是,将大于和小于pivot的元素分别移动到pivot的两边。
我们知道交换两个数的值,若使用第三个变量,则必须申请一个临时空间。而快速排序的划分过程中,在交换记录前,已经记录下pivot的值(对应上面程序就是pivotkey),想当与将pivot对应为元素,当成了临时空间。所以出现了上面的结果。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://66.wendadaohang.com/zd/U2D9p9Dx2vsnvvivpD9.html
相似回答
大家正在搜