堆排序
一、 堆的基本概念 堆是一种完全二叉树,可以分为两种类型: 堆排序通常使用大顶堆来实现升序排序。排序时,首先构建大顶堆,然后将堆顶元素与数组最后一个元素交换,再对剩余的部分重新构建大顶堆,如此循环,直到整个序列有序。 二、 堆排序的主要步骤: 1......
一、 堆的基本概念 堆是一种完全二叉树,可以分为两种类型: 堆排序通常使用大顶堆来实现升序排序。排序时,首先构建大顶堆,然后将堆顶元素与数组最后一个元素交换,再对剩余的部分重新构建大顶堆,如此循环,直到整个序列有序。 二、 堆排序的主要步骤: 1......
二叉平衡树(Balanced Binary Tree)是一种在操作效率上非常优秀的数据结构,其核心思想是保持二叉树的“平衡”,从而使树的高度尽可能低,以保证搜索、插入和删除操作都能在对数时间内完成。 一、 基本概念 二、 主要类型 1. AVL ......
简单选择排序是一种基础的排序算法,其主要思想是:从待排序的序列中不断地选择最小(或最大)的元素,然后将其放到序列的起始(或末尾)位置。 算法步骤 1. 整体思路 选择排序的基本思想是将一个无序数组分成两部分: 在每一轮排序中,从未排序部分中选出最......
一、 常见排序算法 二、 查找算法 三、 图算法 四、 动态规划算法 五、 查找树 总结: 算法 最优时间复杂度 最差时间复杂度 平均时间复杂度 空间复杂度 冒泡排序 (Bubble Sort) O(n) O(n²) O(n²) O(1) 选择排......
后缀表达式(逆波兰表达式)是一种将运算符放在操作数之后的表达式表示法。利用后缀表达式构造表达式二叉树的方法主要依赖于栈结构。 转换步骤 1.初始化创建一个空栈。 2.遍历后缀表达式对后缀表达式的每个符号依次处理: 3.结束处理当所有符号都处理完毕......
数字的进制表示法是指用某种特定的基数(Base)来表示数字的方式。常见的进制包括二进制(Base 2)、八进制(Base 8)、十进制(Base 10)和十六进制(Base 16)。 1. 十进制(Decimal, Base 10) 2. 二进制......
希尔排序(Shell Sort)是一种基于插入排序的排序算法,也是第一种突破 O(n2) 时间复杂度的算法,由 Donald Shell 于 1959 年提出。希尔排序通过将数组分成若干个子序列,对每个子序列进行插入排序,逐渐减少子序列间的间隔,......
1. concat 函数 功能 concat 用于将两个或多个字符串拼接成一个完整的字符串,广泛用于构建动态文本。 通用语法 适用范围 示例 注意事项 2. replace 函数 功能 replace 用于将字符串中的某部分内容替换为指定的内容。......
利用栈完成拓扑排序的基本思想是通过入度(in-degree)记录每个顶点的依赖关系,依次处理入度为0的顶点,并更新其他顶点的入度,直到所有顶点都被处理。 计算方法 举例分析 例1 我们有以下有向图,其邻接表表示如下: 步骤1:计算所有顶点的入度 ......
哈夫曼树的核心思想 哈夫曼树是一种贪心算法的应用。它利用权值较小的节点优先组合的原则,逐步构造一棵总带权路径长度最小的二叉树。 构造哈夫曼树的关键问题 详细的构造过程 输入数据 假设我们需要为以下权值集合构造哈夫曼树: w = [5, 7, 10......