P9

一、插入排序
1.直接插入排序
最好完成n-1次比较,0次元素移动
最差需要n(n-1)/2次移动,(n-1)(n+4)/2次移动
时间复杂度最好为O(n),最坏为O(n^2),需要一个元素的辅助空间
2.折半插入排序法
减少关键字的比较次数,但时间复杂度不变,没有减少移动次数,需要一个元素的辅助空间
3.二路插入排序法
关键字比较次数和移动次数均减小一半左右,但时间复杂度不变,辅助空间需要n个
在任何情况下折半插入排序和直接插入排序移动的元素个数一样多
4.希尔排序
时间复杂度低于直接插入排序
折半插入排序和直接插入排序,两者之间可能的不同之处在于元素之间的比较次数不同
二、交换排序
1.冒泡排序
最好完成n-1次比较,0次元素移动
最差需要n(n-1)/2次移动,3n(n-1)/2次移动
时间复杂度最好为O(n),最坏为O(n^2)需要一个元素的辅助空间
2.快速排序
时间复杂度为
O(knlogn)

当初始顺序为正序时,快速排序退化为冒泡排序
三、选择排序
1.简单选择排序
最好完成n(n-1)/2次比较,0次元素移动
最差需要n(n-1)/2次移动,3(n-1)次移动
时间复杂度为O(n^2),需要一个元素的辅助空间
2.树形选择排序
每趟最好移动零次,最坏移动3次
时间复杂度为O(nlogn),需要辅助空间(2n-1)+1个
2.堆排序
建立初始堆需要
n/2向下取整
次筛选,由初始堆到排序结束需要进行n-1次筛选
筛选是比较次数最坏是(完全二叉树高度-1)*2
n个元素,完全二叉树高度为log以二为底n为真向下取整+1,时间复杂度为O(nlogn),需要一个元素的辅助空间,空间复杂度为O(1)5
四、归并排序
1.二路归并排序
需要进行log以二为底n为真向下取整趟合并,
时间复杂度为O(nlogn),需要n个辅助空间
五、基数排序

稳定的排序

冒泡排序,插入排序,归并排序,二叉树排序,基数排序

不稳定的排序

选择排序,希尔排序,堆排序,快速排序

关键字比较的次数与记录的初始排列次序无关的是简单选择排序
在排序过程中,任何情况下都不比较关键字大小的排序方法是 基数排序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值