码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构第八章

时间:2020-07-11 17:05:56      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:最小   loading   提前   交换排序   增加   堆排   查找   code   小数   

排序

插入排序:

直接插入排序

技术图片

 

 


时间复杂度O(n^2)(比较n^2/2+移动n^2/2)

折半插入排序:每次通过折半查找法找到插入的位置。这样会比直接插入中使用的顺序查找法快

但时间复杂度仍为O(n^2)

希尔排序:先将待排序列分组,对每组进行直接插入排序,增加数据量重新分组。

是不稳定的排序

交换排序

冒泡排序:会先得到最大的数

技术图片

 

 

时间复杂度为O(n^2)

快速排序:冒泡排序的改良,先选择一个枢轴,把比他小的数放在前面,比他大的数放在后面,形成两个相对有序的子表,在子表中重复操作,直到最后剩下一个数

时间复杂度约为O(nlog2n)

简单选择排序:每次遍历a[i]到a[n],选出最小数字提前。

时间复杂度也为O(n^2)

树形选择排序:先对n个记录两两比较,再对其中n/2个较小记录比较,如此重复直至选出最小。

技术图片

 

堆排序:

技术图片

 

堆顶元素是大于小面子树中所有元素的是大根堆

若从小到大排序,需要用到大根堆

如从大到小排序则要建立小根堆

堆排序不稳定。

归并排序:依次将元素两两归并并排序,然后对归并得到的集合再次进行两两归并后排序...直到只剩下一个集合。

时间复杂度为O(nlog2n)

但空间复杂度为O(n),需要开辟大量辅助存储空间。

 

数据结构第八章

标签:最小   loading   提前   交换排序   增加   堆排   查找   code   小数   

原文地址:https://www.cnblogs.com/s1111/p/13284095.html

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