随笔分类 -  数据结构

摘要:1.基本介绍 给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。 赫夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之 阅读全文
posted @ 2022-08-16 22:01 半路_出家ren 阅读(101) 评论(0) 推荐(0) 编辑
摘要:1.堆排序基本介绍 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏、最好的平均时间复杂度均为O(nlogn),它是不稳定排序; 堆是具有一下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,注意:没有要求结点的左孩子的值和右孩子的值的大小关系。 阅读全文
posted @ 2022-08-15 22:06 半路_出家ren 阅读(99) 评论(0) 推荐(0) 编辑
摘要:0.遗留问题(只实现中序,没有实现前序和后序) 1.为什么需要线索二叉树 答: 如上图所示,有些结点的左右指针并没有完全得到利用 为了使所有的指针都得到利用,线索二叉树是有效的解决办法。 2.线索二叉树基本介绍 n个结点的二叉链表中含有n+1个空指针{公式2n-(n-1)=n+1;2n表示总指针域数 阅读全文
posted @ 2022-08-13 21:56 半路_出家ren 阅读(370) 评论(0) 推荐(0) 编辑
摘要:1.基本概念 从数据存储方式来看,数组存储方式和树的存储方式可以相互转换,即数组可以转换成树,树也可以转换成数组。 2.顺序存在二叉树的特点 顺序存储二叉树通常只考虑完全二叉树 第n个元素的左子结点为 2*+1(对应于数组的下标值) 第n个元素的右子结点为 2 * n + 2(对应于数组的下标值) 阅读全文
posted @ 2022-08-11 21:14 半路_出家ren 阅读(94) 评论(0) 推荐(0) 编辑
摘要:1.删除的规定(剩下的后面补充) 如果删除的是叶子结点,则删除该结点; 如果删除的结点是非叶子结点,则删除该子树 2.删除思路 首先,考虑如果树是空树root,或者只有一个结点,则等价于二叉树置空。 因为我们的二叉树是单向的,所以我们是判断当前结点的子结点是否需要删除,而不能去判断当前这个结点是不是 阅读全文
posted @ 2022-08-10 21:21 半路_出家ren 阅读(180) 评论(0) 推荐(0) 编辑
摘要:1.前序查找思路 先判断当前结点的no是否等于要查找的no 如果no相等,则返回该结点 如果no不相等,则判断当前结点的左子结点是否为空,如果不为空,则递归前序查找 如果左递归前序查找到结点,则返回 否则继续判断,当前结点的右子结点是否为空,如果不为空,则继续递归前序查找 2.中序查找思路 判断当前 阅读全文
posted @ 2022-08-09 21:47 半路_出家ren 阅读(149) 评论(0) 推荐(0) 编辑
摘要:1.说明 前序遍历: 先输出父节点,再遍历左子树和右子树 中序遍历: 先遍历左子树,再输出父节点,再遍历右子树 后序遍历: 先遍历左子树,再遍历右子树,最后输出父节点 小结: 看输出父节点的顺序,就确定是前序,中序还是后序 2.分析遍历的步骤 1.先创建一棵二叉树 2.前序遍历 2.1 先输出当前结 阅读全文
posted @ 2022-08-08 21:35 半路_出家ren 阅读(431) 评论(0) 推荐(0) 编辑
摘要:1.哈希表的基本介绍 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表与缓存层联系学习,有助于理解。 2.图 阅读全文
posted @ 2022-07-21 22:25 半路_出家ren 阅读(83) 评论(0) 推荐(0) 编辑
摘要:1.斐波那契(黄金分割法)查找基本介绍 黄金分割点是指把一条线段分割为两部分,使其中一部分与全长之比等于另一部分与这部分之比。取其前三位数字的近似值是0.618。由于按此比例设计的造型十分美丽,因此称为黄金分割,也称为中外比。这是一个神奇的数字,会带来意向不到的效果。 斐波那契数列 {1,1, 2, 阅读全文
posted @ 2022-07-19 22:29 半路_出家ren 阅读(374) 评论(0) 推荐(0) 编辑
摘要:1.插值查找原理介绍 1)插值查找算法类似于二分查找,不同的是插值查找每次从自适应mid处开始查找。 2)将折半查找中的求mid 索引的公式, low表示左边索引left,high表示右边索引right.key 就是前面我们讲的 findVal。 2.插值查找举例(自适应很神奇)(查找一次即可) 插 阅读全文
posted @ 2022-07-18 21:40 半路_出家ren 阅读(221) 评论(0) 推荐(0) 编辑
摘要:1.二分查找算法介绍 二分查找算法必须是有序的。 二分查找的思路分析 首先确定该数组的中间的下标 mid = (left + right) / 2 然后让需要查找的数 findVal 和 arr[mid] 比较 1 findVal > arr[mid] , 说明你要查找的数在mid 的右边, 因此需 阅读全文
posted @ 2022-07-17 21:41 半路_出家ren 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1.常用查找算法 1)顺序(线性)查找 二分查找/折半查找 3)插值查找 斐波那契查找 2.线性查找算法实现 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求:如果找到了,就提示找到,并给出下标值。 package com.yt.sear 阅读全文
posted @ 2022-07-17 20:48 半路_出家ren 阅读(97) 评论(0) 推荐(0) 编辑
摘要:1.基数排序介绍(桶排序) 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用. 基数排序法是属于稳定性的排序 2. 阅读全文
posted @ 2022-07-16 22:09 半路_出家ren 阅读(179) 评论(0) 推荐(0) 编辑
摘要:1.归并排序介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法; 该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而 治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 2.归 阅读全文
posted @ 2022-07-15 21:21 半路_出家ren 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1.快速排序介绍 快速排序(Quicksort)是对冒泡排序的一种改进。 2.快速排序基本思想 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按照此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 阅读全文
posted @ 2022-07-14 21:13 半路_出家ren 阅读(67) 评论(0) 推荐(0) 编辑
摘要:1.简单插入排序存在的问题 数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1(最小) 结论: 当需要插入的数是较小的数时,后移的次数明显增多,对效率有影响. 2.希尔排序介绍 希尔排序也是一种插入排序,它是简单插入排序经过改进之后的更有效的版本,也称为缩小增量排序。 3.希尔排序基 阅读全文
posted @ 2022-07-12 22:03 半路_出家ren 阅读(70) 评论(0) 推荐(0) 编辑
摘要:插入排序的思想 插入排序(Insertion Sorting)的基本思想是: 把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素, 排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较, 将它插入到有序表中的适当位 阅读全文
posted @ 2022-07-11 21:16 半路_出家ren 阅读(75) 评论(0) 推荐(0) 编辑
摘要:排序速度的比较:选择排序的速度比冒泡排序快 package com.yt.sort; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class SelectSort 阅读全文
posted @ 2022-07-05 22:31 半路_出家ren 阅读(68) 评论(0) 推荐(0) 编辑
摘要:数据结构的学习 冒泡排序 排序花费的时间探索 package com.yt.sort; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; public class BubbleSort 阅读全文
posted @ 2022-06-30 22:09 半路_出家ren 阅读(72) 评论(0) 推荐(0) 编辑

返回顶端
点击右上角即可分享
微信分享提示