![](https://img-blog.csdnimg.cn/b2fbd459be5d4bf58cfad35d193865d1.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 63
数据结构与算法
ChenJieYaYa
这个作者很懒,什么都没留下…
展开
-
数据结构与算法——图
基本介绍优点线性表只限一个前驱和一个后继,树也只有一个前驱,图可以表示多对多的关系基本概念顶点边路径有向图与无向图带权图表示方式邻接矩阵<二维数组>:表示顶点间相连的关系邻接表<链表+数组>:只关心存在的边深度优先遍历DFS广度优先遍历BFSimport java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;public clas原创 2021-12-21 12:09:40 · 61 阅读 · 0 评论 -
数据结构与算法——多路查找树
二叉树与B树二叉树的问题分析二叉树需要加载到内存当中,若二叉树节点减少,没什么问题,若二叉树节点很多(1亿)就存在一下问题创建二叉树时需要进行多次I/O操作,节点海量,速度有影响节点海量,也会造成二叉树节点海量,降低操作速度多叉树每个节点可以允许有多个数据项和更多的节点多叉树重新组织节点,减少树的高度,能对二叉树优化B树B树通过重新组织节点,降低树的高度,并减少I/O次数来提高效率文件系统及数据库系统利用了磁盘预读原理,将一个节点的大小设为一个页4K,每个节点只需要一个I/O可原创 2021-12-21 11:56:47 · 458 阅读 · 0 评论 -
数据结构与算法——树结构实际应用
堆排序基本介绍其最好,最坏,平均时间复杂度均为O(nlogn)===不稳定的排序大顶堆:完全二叉树,且每个节点的值都大于等于其左右孩子节点的值(注意:没有要求左右孩子节点间的大小关系)一般,升序采用大顶堆,降序采用小顶堆基本思想将待排序的序列构成一个大顶堆,此时,整个序列最大值就是堆顶的根节点将根节点与末尾元素进行交换,此时末尾就为最大值将剩余(n-1)个元素重新构成一个堆,这样会得到 n 个元素的次小值反复执行,便能得到一个有序序列代码实现/** * 堆排序 * @a原创 2021-12-21 11:25:47 · 409 阅读 · 0 评论 -
数据结构与算法——树结构的基础部分
树存储方式的分析数组:查询快 增删慢链表:查询慢 增删快树存储:提高数据存储和读取效率常用术语节点根节点父节点子节点叶子节点:没有子节点的节点节点的权:节点值路径:从根节点到该节点的路径层:高度子树树的高度:最大层数森林:由多颗子树构成二叉树基本概念二叉树:每个节点最多只能有两个子节点,且二叉树的子节点分左右满二叉树:所有叶子节点都在最后一层,且节点数=2^n-1(n:层数)完全二叉树:所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点左连续,倒数原创 2021-12-21 10:30:42 · 228 阅读 · 0 评论 -
数据结构与算法——哈希表
1.基本介绍散列表(Hash Table),根据关键码值而直接进行访问的数据结构,它通常将关键码映射到表中一个位置来访问记录,以加快查找速度由数组+链表构成2.例题一公司,当有新来员工时,将员工信息(id,name…)加入,当输入该员工id时,要查找到该员工的所有信息,要求不使用数据库,且越快越好public class HashTabDome { public static void main(String[] args) { //涉及内部类的访问 HashTabDome原创 2021-09-18 22:13:10 · 54 阅读 · 0 评论 -
数据结构与算法——查找
线性查找逐一比对public class SeqSraech { public static void main(String[] args) { int arr[] = {1,9,11,34,89}; //此处为解决数组中含有-1,且寻找-1的情况,感兴趣可以试试 int index=seqSearch(arr, 9); if(index==-1){ System.out.println("没有找到"); }else{ System.out.prin原创 2021-09-15 21:03:59 · 82 阅读 · 0 评论 -
数据结构与算法——排序
类型内部排序:将需要处理的所有数据都加载到内部存储器(内存中)如:插入排序(直接插入排序,希尔排序)选择排序(简单选择排序,堆排序)交换排序(冒泡排序,快速排序)归并排序,基数排序内部排序:数据量过大无法全部加载到内存中,需要借助外部存储进行排序算法的时间复杂度统计方法1.事后统计(运算后在进行计算)缺点:不能进行评测,需实际运行该程序,且不同计算器运行时间不相同2.事前估算时间频度:算法中语句的执行次数说明:可忽略常数项,底次项,系数时间复杂度1.基本介绍:一般情况下原创 2021-09-08 17:14:35 · 120 阅读 · 0 评论 -
数据结构与算法——递归
递归概念:自己调用自己,每次调用时传入不同的参数值规则<1> 执行一个方法时就创立了一个新的栈空间<2> 方法的局部变量时独立的,不会相互影响<3> 方法的引用类型变量(如数组)被共享<4> 必须向退出递归的条件逼近,否则将无线递归(StackOverflowError)<5> 谁调用结果就返回给谁应用1.打印问题//打印问题 public static void test(int n){ if(n>原创 2021-09-08 13:52:57 · 70 阅读 · 0 评论 -
数据结构与算法——栈
栈基本介绍<1> 限制性线性表,元素只能在一端插入和删除的特殊线性表<2> 允许插入删除的一端称栈顶Top<3> 固定的一端称栈底Button<4> 先进后出应用场景<1> 子程序的调用<2> 递归调用<3> 表达式的转换与求值:前 后 中缀表达式<4> 二叉树的遍历<5> 图的深度优先搜素数组模拟栈public class ArrayStack { pub原创 2021-09-08 13:41:25 · 148 阅读 · 0 评论 -
数据结构与算法——链表
链表基本介绍<1> 以节点的方式存储 是链式存储<2> 每个节点包含next date<3> 链表的各个节点不一定是连续存储的<4> 类型 ①带头节点 ②不带头节点单链表的应用public class HeroNode { int no; String name; String nickname; HeroNode next; public HeroNode(int no,String name,String nickname){原创 2021-09-08 11:15:58 · 89 阅读 · 0 评论 -
数据结构与算法——稀疏矩阵+队列
稀疏矩阵使用场景:二维数组中有大量的0或者大量相同数据,此时存在着空间浪费作用:节省空间,提高效率处理方法:原创 2021-08-08 16:22:21 · 94 阅读 · 0 评论