趣谈排序算法

趣谈排序算法

先科普个小知识点:排序分两大派------内部排序(数据都装内存里)和外部排序(数据太多装不下,得靠硬盘帮忙),用大白话讲一遍,秒懂各排序啥脾气、啥实力👇


第一大类:内部排序(内存里就能搞定,日常最常用)

特点:所有待排序数据都能放进内存,操作快、门槛低,日常必用款~

1. 冒泡排序

人设:佛系懒人,只会挨个比大小

隔壁俩数不顺眼就换位置,一轮轮往上冒,像水里冒泡。

✅ 优点:超好写、脑子不用动;

❌ 缺点:慢到离谱,数据一多直接摆烂,新手入门专属凑数选手。

2. 选择排序

人设:强迫症挑货

每次从头遍历,找出最小的放最前面,再找次小的依次排好。

不瞎折腾,但还是老毛病------又笨又慢,比冒泡稍微体面一点点。

3. 插入排序

人设:打牌整理爱好者

像摸扑克牌,拿到一张就往前找合适位置插进去。

小数据贼快、超稳;大数据直接翻车,适合小场面稳一手。

4. 快速排序

人设:暴躁实力派,职场卷王

随便选个基准值,小的放左边、大的放右边,分而治之递归到底。

平均速度封神,编程界内部排序一哥;偶尔运气差翻车拉胯,但不妨碍日常首选。

5. 归并排序

人设:严谨学霸,做事有条不紊

先拆成最小单元,再两两合并有序数组,稳得一批。

速度快、还稳定,就是占内存有点费钱,空间换时间典型代表。

6. 堆排序

人设:深藏不露技术宅

靠二叉堆结构筛选最值,不占额外空间、效率还高。

原理有点绕,不好手写,但性能拉满,低调大佬。

7. 计数 / 桶 / 基数排序

人设:开挂特招生

不做元素比较,靠数值范围直接归类统计。

限定范围里无敌最快,脱离场景直接废,属于"有条件就开挂"的内部排序选手。


第二大类:外部排序(内存装不下,得找硬盘搭伙)

特点:待排序数据量极大(比如百万、千万条),内存装不下,需要硬盘、U盘等外部存储配合,核心是"分而治之",先拆后合。

1. 归并类外部排序(最常用)

人设:耐心打工人,擅长分工合作

核心操作:先把硬盘里的大文件,拆成一个个内存能装下的小文件,分别用内部排序(比如快排、归并)排好序,再把这些有序小文件,两两合并成大的有序文件,直到合并成完整的有序文件。

✅ 优点:稳定、适配各种大数据场景,工业级常用;

❌ 缺点:要频繁读写硬盘,速度比内部排序慢,有点费设备。

2. 置换选择排序(外部排序"预热选手")

人设:高效预热员,减少后续麻烦

专门用来拆分大文件,生成"有序段"(比普通拆分更高效),为后续的归并操作省时间。简单说,就是先把大文件里的数据,筛选出一批有序的小片段,再交给归并排序处理。

主打一个"辅助",不单独完成排序,却是外部排序的高效好帮手。


搞笑实力排位(当个乐子看)

内部排序:快排 > 归并 ≈ 堆排 > 插入 > 选择 > 冒泡

开挂三兄弟(计数 / 桶 / 基数):特定场景直接乱杀

外部排序:归并类外部排序 > 置换选择排序(辅助型)

相关推荐
江畔柳前堤5 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore6 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考7 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX8 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面9 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号9 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽9 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI9 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者11 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者11 小时前
【征程6】校准量化中HistogramObserver解析
算法