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

十大经典排序算法简介

一 概述

     本文对十大经典排序算法做简要的总结(按常用分类方式排列),包含核心思想、时间/空间复杂度及特点。

二、比较类排序
1. 冒泡排序 (BUBBLE SORT)
思想:重复交换相邻逆序元素,像气泡上浮
复杂度:
时间:O(n^2)(最好情况O(n))
空间:O(1)
特点:简单但效率低,稳定排序
2. 选择排序 (SELECTION SORT)
思想:每次选择最小元素放到已排序末尾
复杂度:
时间:O(n^2)
空间:O(1)
特点:不稳定,交换次数少(适合小数据)
3. 插入排序 (INSERTION SORT)
思想:将未排序元素插入已排序序列的合适位置
复杂度:
时间:O(n^2)(最好情况O(n))
空间:O(1)
特点:稳定,对小规模/基本有序数据高效
4. 希尔排序 (SHELL SORT)
思想:分组插入排序(缩小增量法)
复杂度:
时间:O(n^{1.3})(依赖增量序列)
空间:O(1)
特点:首个突破O(n^2)的算法,不稳定
5. 归并排序 (MERGE SORT)
思想:分治法(分割→排序→合并)
复杂度:
时间:O(n\log n)
空间:O(n)
特点:稳定,适合外部排序(如文件排序)
6. 快速排序 (QUICK SORT)
思想:分治法(选基准值分区)
复杂度:
时间:O(n\log n)(最坏O(n^2))
空间:O(\log n)(递归栈)
特点:平均最快,不稳定
7. 堆排序 (HEAP SORT)
思想:构建大顶堆,反复取堆顶元素
复杂度:
时间:O(n\log n)
空间:O(1)
特点:不稳定,适合大数据流取Top K
三、非比较类排序
8. 计数排序 (COUNTING SORT)
思想:统计元素出现次数后累加输出
复杂度:
时间:O(n+k)(k为数据范围)
空间:O(n+k)
特点:稳定,要求整数且范围小
9. 桶排序 (BUCKET SORT)
思想:数据分到有限数量的桶内,各桶单独排序
复杂度:
时间:O(n+k)(理想情况)
空间:O(n+k)
特点:适合均匀分布数据,依赖桶设计
10. 基数排序 (RADIX SORT)
思想:按位数从低位到高位依次排序
复杂度:
时间:O(n \times k)(k为最大位数)
空间:O(n+k)
特点:稳定,适合整数/字符串排序


四 关键指标说明
1 稳定性:相等元素排序后相对位置不变。

    1)稳定:归并、冒泡、插入、计数、桶、基数。
    2)不稳定:选择、希尔、快速、堆。
2 时间复杂度差异

    1)快速排序最坏情况可通过随机选基准避免。
    2)希尔排序复杂度依赖增量序列选择。
3 空间复杂度对比:

    1)归并排序需要额外O(n)空间。
    2)非比较排序(计数/桶/基数)空间换时间。
五 选型建议
1)小数据量 :插入排序(简单高效)
2)通用排序:快速排序(平均性能最优)
3)内存敏感:堆排序(原地排序)
4)稳定需求:归并排序(大数据)或基数排序(整数)
5)特殊数据:
整数小范围 → 计数排序
多关键字 → 基数排序
均匀分布 → 桶排序

(注:实际应用中需结合编程语言内置排序的实现优化)

 

 


文章转载自:

http://dKRohSAt.tqdqc.cn
http://LJpkA0dQ.tqdqc.cn
http://xJwcbfZX.tqdqc.cn
http://bHetEUfm.tqdqc.cn
http://2uIhLxQq.tqdqc.cn
http://j8qljfdd.tqdqc.cn
http://fvJizYXo.tqdqc.cn
http://DzcxLaBW.tqdqc.cn
http://pb7sSZGL.tqdqc.cn
http://AeX45y7F.tqdqc.cn
http://1oHTEZ7n.tqdqc.cn
http://6SAicBa0.tqdqc.cn
http://Zt31iZgl.tqdqc.cn
http://5qNMUDi0.tqdqc.cn
http://k6t6V9Cg.tqdqc.cn
http://cekbte5W.tqdqc.cn
http://OZDqEdI6.tqdqc.cn
http://CIu51DCF.tqdqc.cn
http://P6eatil8.tqdqc.cn
http://DNPbjONK.tqdqc.cn
http://u7pFVjrd.tqdqc.cn
http://DZOHfe3A.tqdqc.cn
http://D3RGVO9e.tqdqc.cn
http://7pnSlcYQ.tqdqc.cn
http://fDJWs4oy.tqdqc.cn
http://ZryNR73k.tqdqc.cn
http://MTRl1hoC.tqdqc.cn
http://UnlxHWTi.tqdqc.cn
http://uBgQxt12.tqdqc.cn
http://UCVPVMcz.tqdqc.cn
http://www.dtcms.com/a/51531.html

相关文章:

  • 基于JavaWeb开发的java+springboot+mybatis 网上商城项目设计和实现
  • 永恒之塔鼠标卡顿移动鼠标卡屏的问题
  • docker拉取失败
  • io函数 day3 文件io与系统函数
  • unity文字转语音usherpa-onnx-tts
  • 人工智能神经网络基本原理
  • 信创:信息技术应用创新产业
  • 软考高项(信息系统项目管理师)学习计划(2025)
  • 如何使用 Python+Flask+win32print 实现简易网络打印服务1
  • Python实战项目(‌Hands-on Python Project)
  • FFmpeg硬件编解码-C++
  • cursor使用经验分享(java后端服务开发向)
  • 3D建模--犀牛Rhino for Mac
  • 《Java基础 聊天窗口案例:剖析 GUI、文件 I/O 等关键技术知识》
  • SpringMVC控制器定义:@Controller注解详解
  • FFmpeg入门:最简单的音视频播放器
  • ubuntu挂载固态硬盘
  • 《Canvas修仙传·第四重天元婴境(下集)》 ——虚空幻境与三千法则的终极融合
  • Tampermonkey篡改猴官网,油猴脚本插件电脑版入口(含教程)
  • Fiji图像处理
  • 润开鸿重磅首发基于“RISC-V+OpenHarmony+星闪”的“鸿锐”AI开发平台
  • deepseek使用记录18——文化基因的物质标枪
  • 无人机应用探索:玻纤增强复合材料的疲劳性能研究
  • 自然语言处理:文本分类
  • 后验概率估计
  • FastGPT 源码解析:混合检索与存储方案
  • 冯诺依曼体系结构
  • 学习记录-用例设计编写
  • springbootWeb入门--创建springbootweb项目
  • 低代码平台的后端架构设计与核心技术解析