关于c语言快速排序法的一个疑问 这个是算法的一部分,请问这里找到high小于基准值low大于基准值

关于c语言快速排序法的一个疑问
这个是算法的一部分,请问这里找到high小于基准值low大于基准值时为什么只用这样附一边的值就算交换了,这里交换是怎么实现的,可以麻烦解释一下么,谢谢

这个算法应该是快速排序。
要了解快排,要了解快排序的两个重要特点,分别是主元pivot和划分。
快速排序的思想是随机选择一个pivot。
划分的过程就是,将大于和小于pivot的元素分别移动到pivot的两边。
我们知道交换两个数的值,若使用第三个变量,则必须申请一个临时空间。而快速排序的划分过程中,在交换记录前,已经记录下pivot的值(对应上面程序就是pivotkey),想当与将pivot对应为元素,当成了临时空间。所以出现了上面的结果。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜