NashZhou

广告算法工程师,目前致力于关键词广告的效果自动优化

高级排序算法一定比简单排序算法好吗?

以前在做毕业论文的时候研究了这个问题,今天突然想把它写出来分享一下。

事实上高级排序算法未必一定比简单排序算法好。

 

先是在原始数据已有序的情况下对比分析快速排序、希尔排序、堆排序(具体算法请参考http://www.cnblogs.com/2010Freeze/articles/2047940.html)

  

  发现在这种情况下希尔排序是最好的,分析以后得出的结论是希尔排序本身是由插入排序修改而来的,它仍然保留了部分插入排序的特性。

       我们知道在排序数据较多的情况下,高级排序算法比简单排序算法的平均性能好的多。

     那么,当排序数据较少时,哪个更好的,我没有做对比实验,当时是用时间长短来衡量算法性能,如果规模较小,时间基本为0,此时得采用 记录 算法操作步骤的多少 对算法进行评价。

但是,我曾经在一个快速排序里面混合了一部分的直接插入排序,我们知道快速排序是使用递归的算法,n规模的快排将变成 2n-1/2的快排。设定一个指标 当规模小于这个指标时 直接使用直接插入排序。

使用时间进行衡量,对比单一快速排序,混合快速排序的性能要好很多。

 

总结

事实上不止排序算法,很多算法都一样。

特别是那些基于递归调用的高级算法,可以考虑使用混合策略进行改进。

posted on 2011-09-26 12:19  NashZhou  阅读(657)  评论(12编辑  收藏  举报

导航