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

常见排序算法时间、空间复杂度总结

常见排序算法时间、空间复杂度总结

  • n:待排序元素数量。
  • k:数据的范围或桶的数量。
  • 稳定性:若两个元素相等,排序后顺序是否保持不变。
排序算法最好时间复杂度平均时间复杂度最坏时间复杂度空间复杂度稳定性是否与初始状态有关一趟能否确定最终位置简要说明
冒泡排序O(n)O(n²)O(n²)O(1)✅ 最大值冒到末尾初始有序时效率高
选择排序O(n²)O(n²)O(n²)O(1)✅ 最小值放前面每次都找最小值
插入排序O(n)O(n²)O(n²)O(1)❌ 插入位置不唯一初始越有序越快
希尔排序O(n log n)依增量而异O(n²)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²)O(log n)✅ 基准元素归位平均效率高,需优化枢轴
堆排序O(n log n)O(n log n)O(n log n)O(1)✅ 最大值出堆适合TopK和优先队列
计数排序O(n + k)O(n + k)O(n + k)O(k)非比较排序,整数范围适用
桶排序O(n + k)O(n + k)O(n²)O(n + k)分布均匀时非常高效
基数排序O(n × k)O(n × k)O(n × k)O(n + k)多位数排序,适合字符串或大数

小贴士:

  • 需要稳定排序时推荐用:冒泡、插入、归并、计数、基数。
  • 注重空间效率时推荐用:快速排序(递归可优化)、堆排序、插入排序。
  • 排序速度优先、数据量大时推荐:快速排序、归并排序、堆排序。

是否与初始序列状态有关:

有关:冒泡、插入、快速、希尔、桶排序 —— 这些算法的运行效率会因初始序列的有序程度而显著不同;

无关:选择、归并、堆、计数、基数排序 —— 无论数据有序与否,都会按照固定流程进行,复杂度不会改善。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/233242.html

相关文章:

  • vue-19(Vuex异步操作和变更)
  • Python训练营打卡Day45
  • Spring Boot统一功能处理深度解析
  • 系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
  • 网络安全面试题目(无答案)
  • Next.js中Protected Route(受保护路由)
  • reverse笔记
  • Neo4j 完全指南:从入门到精通
  • 八:操作系统设备管理之缓冲、缓存与假脱机
  • 编程技能:格式化打印05,格式控制符
  • NVM!(可以快速替换你的node版本)
  • 免费wordpress模板下载
  • 神经网络与深度学习 网络优化与正则化
  • 63、.NET 异常处理
  • [QMT量化交易小白入门]-六十一、多因子选股+布林带择时年化收益率21.5%
  • FPGA 的硬件结构
  • 成工fpga(知识星球号)——精品来袭
  • PySpark性能调优手册:大数据处理中的避坑与实践
  • GC1809:高性能24bit/192kHz音频接收芯片解析
  • 《一生一芯》数字实验六:实现随机数发生器
  • Dockerfile实践java项目
  • Postgresql常用函数操作
  • uniapp中使用aixos 报错
  • 「数据分析 - NumPy 函数与方法全集」【数据分析全栈攻略:爬虫+处理+可视化+报告】
  • 国际数字影像产业园:为文创产业注入科技基因,激活无限可能
  • 益莱储参加 Keysight World 2025,助力科技加速创新
  • Linux(13)——Ext系列⽂件系统
  • MacOS解决局域网“没有到达主机的路由 no route to host“
  • 机器学习——什么时候使用决策树
  • 前端没有“秦始皇“,但可以做跨端的王[特殊字符]