标签:
// std::sort 学习:一种递归分治方法
今天看了看 stl 的 std::sort 的代码,众所周知,这个函数是在快速排序递归太深的时候使用堆排序防止过度退化,但是今天说的不是这个。我们只看快速排序的部分。
我们一般实现快速排序大概是这样的(本王随意写了个用下标当参数的排序函数,领会意思即可)。
但是 stl 里面的代码不是这个形式,它大概是这个样子。
很容易发现,这个写法跟前面的写法执行的过程是完全一样的,但是函数调用减少了一半,节省了开销。
标签:
原文地址:http://www.cnblogs.com/gu-castle/p/5544257.html