网站首页 > 技术文章 正文
作为一名 Java 开发工程师,我将总结十大常见排序算法的时间复杂度和空间复杂度。
排序算法时间复杂度和空间复杂度一览表
| 排序算法 | 最优时间复杂度 | 平均时间复杂度 | 最差时间复杂度 | 空间复杂度 |
| -------------- | --------------- | --------------- | --------------- | ---------- |
| 冒泡排序 | O(n) | O(n^2) | O(n^2) | O(1) |
| 选择排序 | O(n^2) | O(n^2) | O(n^2) | O(1) |
| 插入排序 | O(n) | O(n^2) | O(n^2) | O(1) |
| 希尔排序 | O(n log n) | 取决于步长序列 | O(n^2) | O(1) |
| 归并排序 | O(n log n) | O(n log n) | O(n log n) | O(n) |
| 快速排序 | O(n log n) | O(n log n) | O(n^2) | O(log n) |
| 堆排序 | O(n log n) | O(n log n) | O(n log n) | O(1) |
| 计数排序 | O(n + k) | O(n + k) | O(n + k) | O(k) |
| 桶排序 | O(n + k) | O(n + k) | O(n^2) | O(n + k) |
| 基数排序 | O(nk) | O(nk) | O(nk) | O(n + k) |
总结
- O(1) 空间复杂度的排序算法: 冒泡排序、选择排序、插入排序、希尔排序、堆排序
- O(n) 空间复杂度的排序算法: 归并排序、计数排序、桶排序、基数排序
- O(log n) 空间复杂度的排序算法: 快速排序 (平均情况)
---
关注我,获取更多算法和编程知识!
#Java #算法 #排序算法 #时间复杂度 #空间复杂度 #编程 #IT知识
猜你喜欢
- 2024-10-28 怎么判断一个算法的“好坏”程度——时间复杂度的计算
- 2024-10-28 递归算法的时间复杂度 递归算法时间复杂度计算
- 2024-10-28 从头开始学算法-算法复杂度分析 算法复杂度的方法
- 2024-10-28 「图解算法数据结构」——空间复杂度
- 2024-10-28 第002讲:算法与时间复杂度的基本概念
- 2024-10-28 算法分析:算法的评价因素、时间复杂度及空间复杂度#知识分享
- 2024-10-28 代码的圈复杂度 代码圈复杂度如何计算
- 2024-10-28 二、复杂度分析 — 算法效率评估 算法复杂度的分析方法
- 2024-10-28 我们如何评估算法的复杂度 如何评价一个算法的计算复杂度?
- 2024-10-28 算法的时间复杂度如何影响程序性能?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)