排序算法专题

1.分类

基于插入

  • 直接插入排序
  • 折半插入排序
  • 希尔排序

基于交换

  • 冒泡排序
  • 快速排序

基于选择

  • 简单选择排序
  • 堆排序
各种排序算法的性质
时间复杂度空间复杂度稳定性适用性
最好平均最坏
直接插入n1顺序存储/链式存储
冒泡n1顺序存储/链式存储
简单选择1×顺序存储/链式存储
希尔1×顺序存储
快排nlognnlognnlogn×顺序存储
堆排序nlognnlognnlogn1×顺序存储
二路归并nlognnlognnlognn顺序存储/链式存储
基数排序d(n+r)d(n+r)d(n+r)r顺序存储/链式存储

2.零碎的知识点

  1. 对任意n个关键字进行基于比较的排序,比较次数至少为多少?log(n!)(向上取整)
  2. 折半插入时间复杂度是多少?O(n²)
  3. 快排的空间复杂度最坏是多少?O(n)
  4. 基数排序中,队列个数等于什么?进制数

3.关于并行执行

能并行执行不能并行执行
归并排序(各归并段可以并行)基数排序(每一趟需要利用前一趟已经排好的序列)
快速排序(每一趟的两个子序列可以并行)冒牌排序(每一趟仅对未排序的元素处理)
堆排序(左右子树可以并行)

4.与初始状态有关/无关

元素移动次数与关键词的初始排列次序

无关有关
归并排序直接插入排序(初始有序,移动0,初始逆序,移动最多)
基数排序冒泡排序(初始有序,移动0,初始逆序,移动最多)
快速排序(初始基本有序或基本逆序为最坏情况)

排序趟数与序列的原始状态

无关有关
基数排序(d趟)冒泡排序(本趟无交换,排序完成)

简单选择排序(n-1趟)

快速排序
直接插入(n-1趟)

关键词的比较次数与初始排列

无关有关
折半排序直接插入
简单选择(n(n-1)/2)快速排序
归并冒泡排序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值