老师,为什么要在partition函数中将 arr【l】复制给v,不可以直接用arr【l】与arr【i】进行比较吗?
来源:3-5 快速排序法 - Quick Sort

陈新宇
2017-09-24
写回答
1回答
-
liuyubobobo
2017-09-25
完全可以:)
在这里,我习惯赋值给v,一方面语意更清晰,v就是我们的“标定点的值”,每次元素都和标定点作比较,阅读起来不需要翻译arr[l]就是我们的标定点;另一方面有一定的优化作用,减少了不停地在arr数组中寻找索引l的位置的元素的操作。
不过必须强调:后一个原因是次要的。在现代计算机中,这种优化的效果很少,而且很多时候编译器可以在底层帮助你优化。总体而言,在现代计算机上做代码实现,在算法一致的情况下,应该尽可能选择可读性强的实现写法。如果你有充足的理由任务使用arr[l]可读性更强,并且整个团队成员都认可的话,就应该使用arr[l]:)
10
相似问题