- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 冒泡、选择和插入排序图解详细分析
一、冒泡排序1.基本思想冒泡排序的基本思想是(以升序排列为例):每次遍历数组时,进行前后两元素的比较,将大的元素放在两元素的后面的位置,这样一次遍历数组就可将最大的元素放在最后面,每次遍历,数组长度需排序的数组长度减一,循环多次遍历就可以得到有序数组,整个过程像冒泡一样。2.图解以arr = {5, 3, 8, 4, 7}为例。比较大小,交换后指针后移。比较大小,无需交换,指针后移。比较大小,交换后指针后移。比较大小,交换后指针后移。越界,数组长度减一,重头开始。比较大小,无
2020-10-25 14:44:51
503
1
原创 快速排序算法图解分析
文章目录快速排序介绍图解代码分析交换函数1.一直交换2.左右交换3.快速排序介绍1.快速排序是对冒泡排序的改进。冒泡排序每次交换只能使原序列的逆序数减一(相邻元素的交换),而快速排序可以进行不相邻元素的交换,逆序数至少减少1。(当排序序列逆序数为0时,排序就完成了)百度百科的逆序数解释:2.基本思想(以升序排序为例):选定数组中的一个数作为参照数,将比其小的数放在其左边,大的放在其右边。将其左边和右边的数看成新的数组,分别进行第一步的过程,之后循环进行,直到新的数组中只剩一个元素为止。
2020-10-21 17:21:12
3029
1
原创 霍夫曼树(最优二叉树)的实现
文章目录一、相关概念1.节点的路径及路径长度2.节点的带权路径长度3.树的带权路径长度4.霍夫曼树二、构建步骤三、代码实现一、相关概念1.节点的路径及路径长度路径:在树中,一个节点向下到达另一个节点的通路,称为路径。路径长度:路径中经历的分支数。图中节点1到节点4的路径就是:1->2,2->4。路径长度为2。2.节点的带权路径长度在树中,可以定义某个节点的权值,从根节点到此节点的路径长度与此节点的权值的乘积就是该节点的带权路径长度。例如:上图中若定义节点4的权值为4,则其带权路
2020-10-20 18:13:41
2110
13
原创 堆排序算法详细分析
一、堆相关概念1.堆堆是完全二叉树,即除最后一层外,其它层都是满的,且最后一层从左到右依次都有元素。如下图所示。堆是用数组来实现的,图中下标就为数组的下标,其对应数组[5, 1, 7, 2, 8, 6, 3, 9, 4],可以看出节点i的左子节点对应2i+1节点,右子节点为2i+2,父节点为(i-1)/2。2.大顶堆与小顶堆大顶堆:若堆中每个非叶子节点的值均大于等于其子节点的值,则称这个堆为大顶堆。小顶堆:若堆中每个非叶子节点的值均小于等于其子节点的值,则称这个堆为小顶堆。大顶堆与小顶堆
2020-10-19 21:29:05
1415
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人