首页 > 编程语言 > 详细

常见的排序算法——总结(待完成)

时间:2019-04-26 18:52:57      阅读:116      评论:0      收藏:0      [点我收藏+]

最近总结了以下排序算法:

  1. 插入排序:直接插入排序,希尔排序
  2. 交换排序:冒泡排序,快速排序(挖坑法,前后指针法,左右指针法)
  3. 选择排序:直接选择排序,堆排序
  4. 归并排序

所以想对这些排序算法再做一个对比。

一、稳定性

 

二、时间复杂度

实验了各种排序算法需要的运行时间:

2000个元素时:

技术分享图片

 20000个元素时:

技术分享图片

50000个元素时:

技术分享图片

100000个元素时:

 技术分享图片

从上面结果可以看出:直接插入排序(direct_insert)、直接选择排序(select_direct)、冒泡排序(bubble)耗时随着数据量的增加,耗时增加的非常快。

 

接下来,我们再来对比其他几种排序算法的耗时:

200000个元素:

技术分享图片

500000个元素:

技术分享图片

1000000个元素: 

 技术分享图片

2000000个元素:

技术分享图片

10000000个元素:

技术分享图片

从上面的结果可以看出来:快速排序(挖坑法,前后指针法,左右指针法)的耗时最少,归并排序(merge)其次,堆排序(heap)和希尔排序(shell)最多。

 

结论:当数据量非常多时,用快速排序的效率最高。

 

常见的排序算法——总结(待完成)

原文:https://www.cnblogs.com/Brickert/p/10775980.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!