冒泡快速归并排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡快速归并排序相关的知识,希望对你有一定的参考价值。

一:冒泡排序:减治排序
二:快速排序:分治算法
步骤:
1.在整个待排序空间内找一个基准值
2.遍历整个待排序区间,将所有数据和基准值进行比较,最终达到
比基准值大的(可以包含等于的)在基准值的右边
比基准值小的(可以包含等于的)在基准值的左边
3.用同样的策略处理左右两个小的待排序区间,直到
a:小区间内没有数据了(size==0)
b:小区间已经有序(size==1)
聚焦在第一步,为了避免取最边上为基准值导致的,如果数据已经有序、逆序就是最坏情况
1)最边上
2)随机取
3)多数取中(三数取中)
第二步有四种方法:
1)左右往中间靠: a:hover b:挖坑
2)前后遍历 a:前后遍历 b:把和基准值相等的单独处理
如何计算时间复杂度:
1)partition的过程,时间复杂度为O(n)
2)确定做多少层partition:
可以把分治的过程看成一棵二叉树,其高度就是层数
二叉树的高度:O(log(n))-O(n))
如何计算空间复杂度:
1)确定递归方法的调用栈需要最多多少层:
需要二叉树的高度层,所以为O(log(n))-O(n)
三:归并排序(合并排序):
合并两个有序数组的过程
0.平均切分待排序区间,如果待排序的左右两个小区间已经有序,
则按照合并有序数组的方式,使最终区间有序
1.先找到中间位置,划分左右两个小区间,直到小区间的长度==1或<1
2.分治的思想,先排序左右两个小区间
3.合并有序数组

以上是关于冒泡快速归并排序的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序,插入排序,归并排序,快速排序的学习笔记

冒泡快速归并排序

冒泡排序,快速排序,归并排序,插入排序,希尔排序,堆排序,计数排序,桶排序,基数排序

排序算法(冒泡排序选择排序插入排序快速排序归并排序)

排序算法(冒泡排序选择排序插入排序快速排序归并排序)

九大排序算法及其实现- 插入.冒泡.选择.归并.快速.堆排序.计数.基数.桶排序