码迷,mamicode.com
首页 > 编程语言 > 详细

十大排序算法整理(一):概览

时间:2020-03-02 01:05:29      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:内部排序   打开   交换   log   size   位置   inf   strong   堆排   

十大排序算法分类、特点和关系

技术图片

(1)冒泡排序(交换排序的一种)

(2)选择排序

(3)插入排序

(4)归并排序(采用了分治思想,额外的空间复杂度O(N),容易记错,最后合并大数组的时候需要开辟一个长度为N的数组)  https://blog.csdn.net/u010452388/article/details/81008727

(5)快速排序(采用了分治思想,交换排序的一种,额外的空间复杂度O(NlogN),容易记错)  

  • 归并排序每次递归需要用到一个辅助表,长度与待排序的表相等,虽然递归次数是O(log2n),但每次递归都会释放掉所占的辅助空间,所以下次递归的栈空间和辅助空间与这部分释放的空间就不相关了,因而空间复杂度还是O(n)。
  • 而快速排序每次递归都会返回一个中间值的位置,必须使用栈。所以空间复杂度就是栈用的空间。

(6)堆排序(树形的选择排序,非递归版空间复杂度才是O(1))

(7)希尔排序(插入排序的改进版)

(8)桶排序(分成多个桶,每个桶内采用其他方法排序)

(9)计数排序(桶排序思想的一种实现,(8)中桶排序的一种特例,即按照步长为1设定桶,桶内不需要内部排序)

(10)基数排序(桶排序思想的一种实现)

https://www.jianshu.com/p/ffe06398045b

  • 桶排序既可以看做是一种思想,也可以看做是最直接的桶排序实现,看语境

技术图片

 右键:在新标签中打开图片

技术图片

 

 

 

 

 

 

 

十大排序算法整理(一):概览

标签:内部排序   打开   交换   log   size   位置   inf   strong   堆排   

原文地址:https://www.cnblogs.com/JohnTeslaaa/p/12392958.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!