交换排序
交换类排序的核心操作:比较两个元素,若逆序则交换。代表算法有冒泡排序和快速排序。
插入排序
插入类排序的核心思想:将元素插入到已排序序列的合适位置。代表算法有直接插入排序、折半插入排序和希尔排序。
选择排序
选择类排序的核心操作:每趟选出最小(或最大)元素放到最终位置。代表算法有简单选择排序和堆排序。
散列表
散列表(Hash Table)是一种通过散列函数直接计算存储地址的查找结构。与基于比较的查找算法(如 顺序查找、折半查找)不同,散列查找的理想情况可以达到 O(1) 的时间复杂度。
最小生成树
最小生成树(Minimum Spanning Tree, MST)是连通图的生成树中权值之和最小的一棵。
非比较排序
比较类排序有理论下界 O(n log n),非比较排序通过不比较元素大小来突破这个下界。代表算法有基数排序和计数排序。
二叉树的遍历与线索化
遍历(Traversal)是指按照某种规则访问树中所有结点一次且仅一次的过程。二叉树的基础定义和存储结构已在 树与二叉树基础 中介绍。
二叉排序树与平衡二叉树
二叉排序树(Binary Search Tree, BST),也称二叉搜索树、二叉查找树,是一棵空树或满足以下性质的二叉树:
哈夫曼树
哈夫曼树(Huffman Tree),也称最优二叉树(Optimal Binary Tree),是带权路径长度(Weighted Path Length, WPL)最小的二叉树。
特殊矩阵的压缩存储
对于 n \times n 的矩阵,朴素存储要 n^2 个单元。当矩阵具有某种规律性时,朴素存储是浪费的。压缩存储的目标:只保留有用信息,并能 O(1) 反算出原矩阵任一位置的值。










