引言
很久没写快速排序了,没事的时候尝试着回忆了一下,顺便结合泛型编程的思想,将代码改成了void * ,满足所有数据类型的要求。
基本思想
快速排序最大的问题就是在不额外赋值空间的情况下,怎么做到在不变的空间内,按照快排的思想,将base基点左侧都放上比它小的值,base基点右侧都放上比它大的值。
很多时候base基点直接选择的是第一个元素,也是为了方便我们的排序。
但为了防止特殊情况出现,导致快排效率不高,base基点的选择最好是随机的,但只要将随机选中的base和第一个位置的元素交换位置就可以同样达到我们想要的效果。所以思想的讲解主要从base基点作为第一个元素来讲解。
more >>