解释是,对于数组,快速排序每下一次寻址都是紧挨当前地址的,而堆排序的下一次寻址和当前地址的距离比较长。
1#
2#
3#
请问你的快快速排序是怎么写的,我写的快速排序,当测试数组大于5000的时候就栈溢出了。其他的几个排序都对着,不过他们呢没有用栈。这是快速排序的代码,win732位,vs2010.
7#
……
11#
我自己按照堆排序的算法思想实现了堆排序,写完后对照网上的代码,代码几乎是差不多的。至于为何堆排序效率比希尔排序慢很多,我在上面帖子已经说了,是堆排序的算法缺陷造成无用功太多。(我把堆排序看成是高级排序中的冒泡排序,冒泡也是两两交换做了太多无用功所以最慢。)贴下我实现的希尔排序和堆排序,你可以自己去运行比较。
12#
13#
楼主知道标准库的sort是怎么实现的么?先快排,递归深度超过一个阀值就改成堆排,然后对最后的几个进行插入排序。//233系统真机智
14#
16#
同学们,这些算法都有标准的开源程序。自己写程序对理解算法的确有好处。但是如果用于得到一般性的比较结果,那是靠不住的。
THE END