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

场景速记排序算法

排序算法场景描述时间复杂度空间复杂度
冒泡排序煮汤时,气泡不断往上冒,最大的气泡浮到最上面。最好:O(n)O(n)O(1)O(1)
平均:O(n2)O(n2)
最坏:O(n2)O(n2)
选择排序整理书架,每次选出最薄的书放到书架上。最好:O(n2)O(n2)O(1)O(1)
平均:O(n2)O(n2)
最坏:O(n2)O(n2)
插入排序打扑克牌,每次拿到一张新牌,插入到手中已经排好序的牌中。最好:O(n)O(n)O(1)O(1)
平均:O(n2)O(n2)
最坏:O(n2)O(n2)
归并排序整理文件,先把文件分成两半,分别整理好,再合并成一个有序的文件堆。最好:O(nlog⁡n)O(nlogn)O(n)O(n)
平均:O(nlog⁡n)O(nlogn)
最坏:O(nlog⁡n)O(nlogn)
快速排序整理书架,选一个基准书,把比它薄的书放左边,比它厚的书放右边,再递归排序。最好:O(nlog⁡n)O(nlogn)O(log⁡n)O(logn)
平均:O(nlog⁡n)O(nlogn)
最坏:O(n2)O(n2)
堆排序整理箱子,先把箱子堆成一个“堆”,然后每次从堆顶取出最大的箱子,再调整堆。最好:O(nlog⁡n)O(nlogn)O(1)O(1)
平均:O(nlog⁡n)O(nlogn)
最坏:O(nlog⁡n)O(nlogn)
计数排序整理颜色相同的积木,先数一数每种颜色的积木有多少,再按顺序摆放。最好:O(n+k)O(n+k)O(k)O(k)
平均:O(n+k)O(n+k)
最坏:O(n+k)O(n+k)
基数排序整理扑克牌,先按花色排序,再按数字排序。最好:O(n×k)O(n×k)O(n+k)O(n+k)
平均:O(n×k)O(n×k)
最坏:O(n×k)O(n×k)
桶排序整理大小不一的球,先把球分到不同的桶里,再对每个桶里的球排序。最好:O(n+k)O(n+k)O(n+k)O(n+k)
平均:O(n+k)O(n+k)
最坏:O(n2)O(n2)

总结记忆技巧:
时间复杂度空间复杂度
冒泡、选择、插入:最坏 O(n2)O(n2)冒泡、选择、插入、堆:原地排序 O(1)O(1)
归并、堆、快速:平均 O(nlog⁡n)O(nlogn)归并、计数、基数、桶:需要额外空间 O(n)O(n)  O(k)O(k)
计数、基数、桶:线性或接近线性 O(n+k)O(n+k)快速排序:递归栈空间 O(log⁡n)O(logn)

 


http://www.kler.cn/a/543756.html

相关文章:

  • 如何用.NET Core Identity实现定制化的用户身份验证系统
  • 不到一个月,SQLite 3.49.0来了
  • 三步本地部署deepseekr1,支持macOs,ubuntu,Windows
  • 豆包MarsCode “一键Apply”功能测评:编程效率革新利器
  • LVS集群
  • (定时器,绘制事件,qt简单服务器的搭建)2025.2.11
  • 网络安全之探险
  • 自动化飞书腾讯电子签
  • Java进阶学习路线——序
  • python自动化测试之requests模块及通过变量实现接口关联
  • 用户体验UP!响应式网页设计的CSS魔法
  • java-list深入理解(流程图)
  • Windows电脑笔记软件多 推荐几款好用的笔记工具
  • 两个同一对象targetList和 sourceList 去重
  • 【Qt】模型/视图(Model/View)框架详解(一)
  • 基于SSM的农产品供销小程序+LW示例参考
  • ChatGPT背后的深度解析:Andrej Karpathy的视频精华
  • VSCode C/C++ 开发环境完整配置及常见问题(自用)
  • 棱光PDF工具箱:一站式解决你的各种需要
  • 42.水果销售系统(springbootvue的Java项目[含微信小程序])
  • Webpack包
  • DeepSeek计算机视觉(Computer Vision)基础与实践
  • Docker Compose介绍及安装使用MongoDB数据库详解
  • Docker 在 Java 开发中的实践与应用:解锁高效容器化部署新姿势
  • Uniapp 原生组件层级过高问题及解决方案
  • 大数据系列 | 白话讲解大数据技术生态中Hadoop、Hive、Spark的关系介绍