当前位置: 首页 > news >正文

数据结构---排序总结

1.排序的时间复杂度(均为平均值)

O(n^2) :冒泡排序,选择排序,插入排序。
O(n * log(n)):堆排序,快速排序,归并排序。
O(n^1.3):希尔排序

2.空间复杂度:

O(n) 归并排序
O(log(n)) ~ O(n):快速排序
O(1) :冒泡排序,选择排序,插入排序, 堆排序, 希尔排序

3.使用思想分类

1.插入:直接插入排序,希尔排序

2.分治:快速排序,归并排序

3. 选择:选择排序,冒泡排序,堆排序

4.稳定性分类

1.稳定:归并排序,冒泡排序,插入排序 

2.不稳定:希尔排序,选择排序,快速排序,堆排序

5.适用场合

归并排序:要求稳定又相对较快

冒泡排序:简单

插入排序 希尔排序:本身就是相对有序的数组

选择排序:很少用

快速排序:快

堆排序:优于选择,较快

附具体时间复杂度:


http://www.mrgr.cn/news/67995.html

相关文章:

  • 基于Multisim六路抢答器电路(含仿真和报告)
  • 数据链路层Mac协议与ARP协议
  • 每日OJ题_牛客_春游_贪心+数学_C++_Java
  • htop-2.2.0在arm64上的手工编译
  • Prompt 工程
  • Git 的基本概念和使用方式
  • DeBiFormer实战:使用DeBiFormer实现图像分类任务(二)
  • macos中安装和设置ninja
  • Linux下的WatchDog
  • 协程2 --- 相关概念
  • PPT文件设置了修改权限,如何取消权?
  • Linux-c TCP服务模型
  • 【测试】【Debug】vscode中同一个测试用例出现重复
  • 27.旅游推荐管理系统(基于springboot和vue)
  • 【系统架构设计师】高分论文:论软件的可用性设计
  • 【JavaScript】模块化开发
  • (4)Java 编程基础概览:Java中的输入输出操作与代码注释详解
  • canfestival主站多电机对象字典配置
  • 力扣中等难度热题——长度为K的子数组的能量值
  • python基础(2)