
数据结构
Czy_whlg
不忘本心!
展开
-
归并排序
核心思想:采用分治法,将数组划分成两部分,每次对这两部分进行合并。例如:49, 38, 65, 97, 38, 76, 13, 27第一趟:49 38 ——> 38 496597——> 65973876——> 38761327——> 1327第二趟:38 49 6597 ——>38 49 65 973876 1327——>13 27 38 76第三趟:38 4...原创 2020-09-10 17:23:34 · 217 阅读 · 0 评论 -
快速排序的递归实现和非递归实现
之所以写这篇博客,主要是因为对于快排来说,递归的实现已经在我们脑海当中根深蒂固,以至于我们的条件反射就是快排难道还有非递归实现?我怎么之前都没见过。也是为了加深自己对递归的进一步的理解~快速排序的原理我这里就不多讲啦,实现的话就是分治法。想具体了解的可以参考我的另外一篇博客插入类排序。也欢迎大家关注我的博客~~HH递归实现的代码:#include <iostream>#...原创 2020-03-14 20:29:28 · 287 阅读 · 0 评论 -
B+树和B-树对比分析以及实现
1. B-树1.1. 定义例如,以下就是一颗5阶B-树:B-树的阶数:所有结点的子结点所具有的最大分支数,上面的B-树中,最大分支数为5,即包含关键字17、18、19、20的那个结点。刚开始我也是分不清,后来看多就理解了。1.2. 插入和删除操作主要分成两种情况:1) 删除结点位于叶子结点 若当前叶子结点的关键字的个数大于(m+1)/2个,则...原创 2019-12-23 16:17:03 · 416 阅读 · 1 评论 -
树
树是一种应用特别广泛的数据结构,能快速地进行查找。比较常用的主要有二叉排序树、字典树、红黑树、平衡二叉树,一般都会利用递归实现树的遍历。1.完全二叉树即满二叉树从左至右,从下往上依次删除节点形成的树。二叉树的相关性质如下:2. 二叉排序树满足特定条件的二叉树,能实现快速地查找,具有一个很重要的性质:中序遍历结果为有序的序列。leetCode算法题常常会涉及。3. 平衡...原创 2019-11-22 21:19:49 · 128 阅读 · 0 评论 -
选择类排序
1.简介选择类排序:即在排序过程中,选择最值关键字,然后与当前位置的关键字进行交换2.简单选择排序2.1 思想每趟比较选择最小的关键字,然后将其放到当前遍历的位置例如:待排序序列为{4, 2, 6, 9, 5, 1, 10, 3, 8, 7}第1趟:1, 2, 6, 9, 5, 4, 10, 3, 8, 7 当前关键字为4,...原创 2019-11-05 18:52:12 · 677 阅读 · 0 评论 -
交换类排序
1.简介交换类排序:顾名思意,即在排序过程中,依次交换两个元素之间的值2.冒泡排序2.1 思想将两两进行比较,将大的关键字"沉底",即将数值大的元素放到后面例如:待排序序列为{4, 2, 6, 9, 5, 1, 10, 3, 8, 7}第一趟:2, 4, 6, 5, 1, 9, 3,8, 7, 10第二趟:2, 4, 5, 1...原创 2019-11-01 21:29:43 · 886 阅读 · 0 评论 -
插入类排序
1.简介插入类排序:顾名思意,即排序过程中,在有序的序列当中插入元素。分为以下三类2.直接插入排序2.1 思想逐个将第n个待排序元素添加到前(n-1)个有序序列当中。例如:待排序序列为{4, 2, 6, 9, 5, 1, 10, 3, 8, 7},每次从右向左查找元素的插入位置第1趟:4 2, 6, 9, 5...原创 2019-10-30 20:57:13 · 282 阅读 · 0 评论