Python 默认使用 **Timsort**(归并 + 插入的混合优化算法),兼具稳定性与高效性
### ✅ 排序算法对比
| 算法 | 时间复杂度(平均) | 是否稳定 | 是否原地 | 特点 |
|------|---------------------|-----------|------------|------|
| **冒泡排序** | $O(n^2)$ | ✅ 是 | ✅ 是 | 相邻元素两两比较,每轮将最大(或最小)元素“浮”到一端 |
| **选择排序** | $O(n^2)$ | ❌ 否 | ✅ 是 | 每轮选出未排序部分的最值,与首位交换,交换次数最少 |
| **插入排序** | $O(n^2)$(但小规模或近有序时接近 $O(n)$) | ✅ 是 | ✅ 是 | 类似整理扑克牌,逐个将新元素插入已排好序的子序列中 |
| `sorted()` | $O(n\log n)$(Timsort) | ✅ 是 | ❌ 否(返回新列表) | 内置函数,**不修改原列表**,适用于任意可迭代对象 |
| `list.sort()` | $O(n\log n)$(Timsort) | ✅ 是 | ✅ 是(原地排序) | 列表方法,**直接修改原列表**,仅适用于 `list` 类型 |
> 💡 提示:Python 默认使用 **Timsort**(归并 + 插入的混合优化算法),兼具稳定性与高效性。
---
### 🔍 查找算法
- **线性查找**:从头到尾逐个比对,时间复杂度 $O(n)$,无需前提条件,适用于无序数据。
- **二分查找**:要求**数组/列表必须升序(或降序)排列**;每次排除一半区间,时间复杂度 $O(\log n)$;常用循环或递归实现。
> ⚠️ 注意:对列表用二分查找前务必先确认已排序,否则结果错误!
---
### 🧩 递归思想核心要点
递归 = **自我调用 + 明确终止条件(base case)**
| 问题 | 递推关系 | 终止条件 | 备注 |
|------|-----------|------------|------|
| **阶乘** $n!$ | $n! = n \times (n-1)!$ | $0! = 1$ 或 $1! = 1$ | 简单典型,但 $n$ 过大会栈溢出 |
| **斐波那契** $F_n$ | $F_n = F_{n-1} + F_{n-2}$ | $F_0 = 0, F_1 = 1$ | 普通递归时间复杂度 $O(2^n)$,可用记忆化或迭代优化 |
| **汉诺塔** | 将 $n$ 盘从 A→C(借助 B) = <br>① A→B($n-1$盘)<br>② A→C(第 $n$ 盘)<br>③ B→C($n-1$盘) | $n = 1$ 时直接移动 | 移动步数为 $2^n - 1$,是递归建模的经典范例 |
> ✅ 递归适用场景:问题可分解为相同结构的子问题,且存在自然边界。
---
相关推荐
cpp-TimSort:timsort的C ++实现
cpp-TimSort:timsort的C ++实现
【信息科学与工程学】计算机科学与自动化——第八十一篇 Java分布式软件高并发/高可用算法01
4. 消息队列(如Kafka的Topic分区,本质是范围)。3. 若是ACCEPT事件,bossGroup线程接受连接,创建SocketChannel,并将其注册到workerGroup的一个EventLoop的Selector上,关注READ事件。1. 分布式缓存分片(如Redis Cluster)。4. 分布式文件存储(如Ceph CRUSH)。6. 调用栈的模拟(如协程)。3. 服务网格(如Istio)的基础。2. 本地缓存与集中式缓存(如Redis)的一致性维护。3. 静态数据(如配置)缓存。
【信息科学与工程学】【数据科学】 第四十四篇 数据湖 系列二 函数库01
2. 近似最近邻搜索(ANN): 通过HNSW等图索引模型加速,模型定义为构建一个层次化导航小世界图。依赖于消息队列(Kafka/Pulsar)、分布式文件系统(HDFS/S3)的客户端及连接库。依赖专门的向量检索库(如FAISS, Milvus)。管控目标: 召回率(Recall@K) > 95%,查询延迟 < 100ms。管控目标: < 1% (核心业务字段) 或 < 5% (一般字段)依赖数据处理框架(如Spark, Pandas)的核心统计函数。,通过牺牲精确性(ANN)来换取搜索速度的大幅提升。
深入探究TimSort对归并排序算法的优化及Java实现
主要介绍了TimSort归并排序的优化及Java实现,TimSort 是一个归并排序做了大量优化的版本,需要的朋友可以参考下
最快的排序算法是什么,排序算法数据结构
最快的排序算法是什么,排序算法数据结构


