数据结构--八大排序

八大排序

稳定性:指的是经过排序后,值相同的元素保持原来顺序中的相对位置不变.

二分查找是对数级别

冒泡排序 O(n^2) 最差情况O(n^2) 最好情况O(n) 稳定

直接选择排序 O(n^2) 最差情况O(n^2) 最好情况O(n^2) 不稳定

每次选出最小值(先从第一个索引位置 然后和后面元素依次比较 如果后面的小于第一个位置就交换)

直接插入排序(打扑克牌) O(n^2) 最差情况O(n^2) 最好情况O(n) 稳定

希尔排序(插入排序的升级版)(根据间隔数排序初始间隔N/2 最后间隔为1)

O(n^1.3) 最差情况O(n^2) 最好情况O(n) 不稳定

快速排序(一次找到某个数据的位置 其实就是这个数据左边都小于自己 右边都大于直接 ) 分而治之 去头中尾的中位数为枢纽 或者第一个数为枢纽

O(nlog2n) 最差情况O(n^2) 最好情况O(nlog2n) 不稳定

就打扑克(直接插入)冒泡 归并 基数稳定 其他都不稳定

归并排序(分而治之) 一分分一半排序

O(nlog2n) 最差情况O(nlog2n) 最好情况O(nlog2n) 稳定

堆排序特点:不稳定,最坏,最好,平均时间复杂度均为O(nlogn)堆是一个近似完全二叉树的结构,且满足子结点的键值或索引总是小于(或者大于)它的父节点。这里采用最大堆方式:位于堆顶的元素总是整棵树的最大值,每个子节点的值都比父节点小,堆要时刻保持这样的结构,所以一旦堆里面的数据发生变化,要对堆重新进行一次构建。

基数排序 稳定,时间复杂度为O (nlog®m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。

基数排序是一种非比较型整数排序算法,其原理是将数据按位数切割成不同的数字,然后按每个位数分别比较,在类似对百万级的电话号码进行排序的问题上,使用基数排序效率较高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值