数据结构与算法(17): 排序- 冒泡排序 发表于 2016-11-03 | 分类于 数据结构与算法 冒泡排序的基本思想:每次比较相邻的两个元素,如果它们顺序错误就把它们交换过来。其中每一趟排序只能将一个数归位。 时间复杂度是O($N^{2}$)。 冒泡排序是稳定的。 算法稳定性 – 假设在数列中存在a[i]=a[j],若在排序之 ... 阅读全文 »
数据结构与算法(12): 堆- 二叉堆 发表于 2016-10-31 | 分类于 数据结构与算法 堆有两个性质,即结构性和堆序性。将任意节点不大于(不小于)其子节点的堆叫做最小堆(最大堆)。 结构性 堆中任意节点的值总是不大于(不小于)其子节点的值。 堆序性 堆总是一棵完全树。 二叉堆的结构是一棵完全二叉树。 1234567891011121314151617181920212223 ... 阅读全文 »
数据结构与算法(11): 树形结构- B树 发表于 2016-10-31 | 分类于 数据结构与算法 B+树 可以被看作是:一个B树作为索引,但是其每个节点只包含键,同时所有的叶子节点有一个指向数据记录的指针,且叶子节点本身根据关键字大小顺序链接。(B+树只有叶子节点会带有指向数据记录的指针,而B树是所有节点都有,B树中内部出现的索引项不会出现在叶子节点中。) B+树的结构使得每个磁盘中磁道的块可以 ... 阅读全文 »
数据结构与算法(10): 树形结构- 哈夫曼树 发表于 2016-10-31 | 分类于 数据结构与算法 定义 给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径 ... 阅读全文 »
数据结构与算法(9): 树形结构- 红黑树 发表于 2016-10-29 | 分类于 数据结构与算法 介绍 红黑二叉查找树(红黑树):基本思想是用标准的二叉查找树(完全由2-节点构成)和一些额外的信息(替换3-节点)来表示2-3树。 红链接:将两个2-节点连接起来构成一个3-节点。 黑链接:是2-3树中的普通链接。 红黑树另一种定义是 ... 阅读全文 »
数据结构与算法(8): 树形结构- 2-3树 发表于 2016-10-29 | 分类于 数据结构与算法 介绍 2-3树是一种平衡二叉树,其目标是为了优化二叉搜索树,防止极端情况下时间复杂度的退化。 2-节点:含有一个键(及其对应的值)和两条链接,左链接指向的2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。 3-节点:含有两个键(及其对 ... 阅读全文 »