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

常见的排序算法及分类对比

虽然在竞赛和编程语言中用到的排序算法主要是时间复杂度为 O ( n log ⁡ n ) O(n \log n) O(nlogn) 的高效算法,但作为算法学习,我们要从简单到复杂,认识常见的排序算法,并理解其算法思想。本文列出几乎所有的排序算法并进行分类对比。

排序算法总表

以下是一个对比表格,涵盖几乎所有常用的排序算法:

名称 算法思想 平均时间
复杂度
最优时间
复杂度
最坏时间
复杂度
空间
复杂度
稳定排序 内排序 原地排序 比较排序 备注
冒泡排序 相邻交换,逐步冒泡 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1) 可优化(如鸡尾酒排序),不适合大数据。
选择排序 每次选择最小/最大元素 O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1) 简单实现,适合小规模数据。
插入排序 构建局部有序序列 ( 像抓牌 O ( n 2 ) O(n^2) O(n2) O ( n ) O(n) O(n) O ( n 2 ) O(n^2) O(n2) O ( 1 ) O(1) O(1) 基于简单插入的排序,针对字符串可以折半插入。
希尔排序
Shell Sort
改进插入分组和逐步缩小间隔 O ( n 1.5 ) O(n^{1.5)} O(n1.5) O ( n log ⁡ n ) O(n \log n) O(nlogn) O

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

相关文章:

  • C#程序开发,检测当前电脑已经安装的软件目录
  • 基于Qt/C++全局键盘和鼠标事件监控工具
  • 项目模块十七:HttpServer模块
  • 【智谱开放平台-注册/登录安全分析报告】
  • 数据库管理-第260期 业务向前,数据库向后(20241111)
  • 【Linux】常用命令(2.6万字汇总)
  • ReactPress:构建高效、灵活、可扩展的开源发布平台
  • 模块化沙箱:深信达如何为数据安全提供全方位保护
  • 数据库SQL——嵌套子查询(IN/NOT IN/SOME/ALL/EXIST/NOT EXIST)
  • 见人就说“数字化转型”,但你真的理解“转型”转的到底是什么吗
  • 黑盒测试方法论—边界值
  • 网络编程示例之socket编程
  • 第十三天 概率论与统计学
  • shodan 【2】(泷羽sec)
  • iOS 18.2 重磅更新:6个大动作
  • uni-app之数据驱动的picker选择器( uni-data-picker)之可以选择到任意级别
  • Timer指定时间定时任务运行
  • ONLYOFFICE 8.2 版:助力自动化办公的佼佼者
  • 2024年11月7日Github流行趋势
  • sql server启用远程连接与修改默认端口
  • 【FastAdmin】在页面中使用layui,以此引申使用颜色选择器示例
  • WMS仓储管理系统三个重要的使用价值
  • 内网环境,基于k8s docer 自动发包
  • go语言中的错误处理详解
  • 电脑桌面水印是什么,在哪里设置?手把手教会你三个方法,给电脑屏幕添加水印!(亲测好用)
  • linux-c 使用c语言操作sqlite3数据库-1