数据结构----排序

##数据结构—-排序
Created with Raphaël 2.1.2 选择 选择 直接选择 直接选择 堆排序 堆排序 直接选择 堆排序 大根堆、小根堆 :找出最小(大)的Key

Created with Raphaël 2.1.2 交换 交换 冒泡 冒泡 快速 快速 冒泡 大的下沉,小的上浮 快速 基于比较(两两比较)

Created with Raphaël 2.1.2 插入 插入 简单插入 简单插入 shell shell 简单插入 插入到有序序列中 、【有序序列】[current key]【无序序列】 shell












排序算法时间复杂度空间复杂度稳定性特征1:特征2:
最好平均最坏
直接插入 O(n) O ( n ) O(n2) O ( n 2 ) O(n2) O ( n 2 ) O(1) O ( 1 ) 1每趟确定一个最值特征2:
冒泡 O(n) O ( n ) O(n2) O ( n 2 ) O(n2) O ( n 2 ) O(1) O ( 1 ) 1每趟确定一个最值可能循环完成之前就排好序了
简单选择 O(n2) O ( n 2 ) O(n2) O ( n 2 ) O(n2) O ( n 2 ) O(1) O ( 1 ) 0每趟确定一个最值特征2:
希尔 O(n(1.3)) O ( n ( 1.3 ) ) O(1) O ( 1 ) 0最后一趟才有序最小增量排序
快速 O(nlog2n) O ( n l o g 2 n ) O(nlog2n) O ( n l o g 2 n ) O(n2) O ( n 2 ) O(log2n) O ( l o g 2 n ) 0最后一趟才有序分治法,需要一个枢轴
堆排序 O(nlog2n) O ( n l o g 2 n ) O(nlog2n) O ( n l o g 2 n ) O(nlog2n) O ( n l o g 2 n ) O(1) O ( 1 ) 0每趟确定一个最值建堆-取根-调整堆
归并排序 O(nlog2n) O ( n l o g 2 n ) O(nlog2n) O ( n l o g 2 n ) O(nlog2n) O ( n l o g 2 n ) O(n) O ( n ) 1最后一趟才有序1、划分 2、归并
基数排序 O(d(n+r)) O ( d ( n + r ) ) O(d(n+r)) O ( d ( n + r ) ) O(d(n+r)) O ( d ( n + r ) ) O(r) O ( r ) 1每一趟按不同关键字有序分配、收集

最后一趟才有序:最后一趟之前,整体都是无序的(不存在连续的顺序子序列)
每趟确定一个最值:在最后一趟前,存在连续的顺序子序列



基数排序

LSD: 先排次要的关键字,最后排主要的关键字
MSD:先排主关键字,最后排最低层次的关键字

基数排序中LSD方法:若有N种关键字类型(就是存在个位、十位、百位。。。)那么对于Key(i)【0<= i <= N-2】时候要用稳定的排序方式。

未完待续–

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值