![](https://img-blog.csdnimg.cn/20200509000729450.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java数据结构与算法
Java数据结构学习
ysw!不将就
不将就
展开
-
Java迪杰斯特拉算法
一、迪杰斯特拉算法1. 最短路径问题本地区有7个村庄(A,B,C,D,E,F,G),现有六个邮差,从G点出发,需要分别把邮件送到A,B,C,D,E,F六个村庄各个村庄的距离用边线表示(权),例如A-B距离5公里问:如何计算出G村庄到其他各个村庄的最短距离?如果从其他点出发到各个点的最短距离又是多少?2. 算法概述迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个...原创 2020-02-22 18:19:06 · 468 阅读 · 0 评论 -
Java普利姆算法和克鲁斯卡尔算法
常用算法一、普利姆算法1. 应用场景–修路问题一个地区有7个村庄(A,B,C,D,E,F,G),现在需要修路把7个村庄连通各个村庄的距离用边上的权值表示,比如A–B的距离为5公里要保证各个村子连通,且总的公路里程最短2. 最小生成树给定一个带权的无向连通图,如何选择一棵生成树,使树上所有的边上的权的总和为最小,则此树称为最小生成树N个顶点一定有N-1条边包含全部顶点3...原创 2020-02-20 19:22:34 · 426 阅读 · 0 评论 -
Java数据结构--图
图一、概述图是一种数据结构,其中节点可以具有零个或多个相邻元素。两个节点之间的连接称为边,节点也可也以称为顶点1. 图的常用概念2. 图的表示方式2.1 邻接矩阵邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点的图而言,矩阵是row和col表示的1……n个点2.2 邻接表邻接矩阵需要为每个顶点分配n个边的空间,很多边都不会存在,会造成空间的浪费邻接表的实现只关心存在...原创 2020-02-16 16:11:25 · 517 阅读 · 0 评论 -
Java树结构应用
树结构应用一、堆排序1. 概述堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏、最好、平均时间复杂度均为O(logn),它也是不稳定排序堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右节点的值,称为大顶堆,**注意:**没有要求左右孩子值的大小关系每个节点的值都小于或等于其左右孩子的值,称为小顶堆大顶堆举例:一般升序采用大顶堆,降序采...原创 2020-02-13 11:01:56 · 349 阅读 · 0 评论 -
Java树结构基础
树结构基础一、概述为什么需要树这种数据结构:树存储方式能够提高数据存储、读取的效率,比如利用**二叉排序树(Binary Sort Tree),**既可以保证数据的检索速度,同时可以保证数据的插入、删除、修改的速度树的常用术语:节点的权(节点值)路径(从root到大该节点的路线)树的高度(最大层数)森林:多颗子树结构构成森林二、二叉树1. 概述每个节点最多只能有...原创 2020-02-10 21:02:56 · 502 阅读 · 0 评论 -
Java哈希表
哈希表一、概述散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数称为散列函数,存放记录的数组叫做散列表二、举例分析通过哈希表进行员工信息的管理import java.util.Scanner;/** * @author DELL * @Dat...原创 2020-02-05 14:14:53 · 165 阅读 · 0 评论 -
Java查找算法
查找算法一、概述顺序(线性)查找二分查找(折半查找)插值查找斐波那契查找二、线性查找说明:找到元素返回下标,若没有找到则返回-1此处找到一个满足要求的就返回/** * @author DELL * @Date 2020/2/3 17:53 **/public class SequenceSearch { public static void main(S...原创 2020-02-04 17:15:07 · 109 阅读 · 0 评论 -
Java排序算法
排序算法一、概述排序算法(Sort Algorithm),排序是将一组数据依指定的顺序进行排列的过程1. 分类1.1 内部排序将需要处理的所有数据都加载到**内部存储器(内存)**中进行排序1.2 外部排序数据量过大时,无法全部加载到内存中,需要借助外部存储器进行排序2. 常见排序算法二、算法的时间复杂度1. 时间频度一个算法花费的时间与算法中语句的执行次数成正比例,算法中...原创 2020-02-03 17:31:32 · 244 阅读 · 2 评论 -
Java回溯解决八皇后问题
八皇后问题1. 概述八皇后问题是一个古老而著名的问题,是回溯算法的经典案例,该问题是国际西洋棋手马克斯-贝瑟尔于1848年提出来:在8 x 8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线,计算有多少种摆法2. 分析第一个皇后先放在第一行第一列第二个皇后放在第二行第一列,然后判断是否可以,如果不可以,继续放在第二列、第三列…依次把所有列...原创 2020-01-31 17:17:18 · 331 阅读 · 0 评论 -
Java使用递归解决迷宫问题
递归一、概述递归就是方法自己调用自己,每次调用时传入不同的变量,**递归有助于编程者解决复杂的问题,**同时可以让代码变得简洁1. 递归的调用机制1.1 打印问题public class RecursionTest { public static void main(String[] args) { test(4); } public stat...原创 2020-01-31 11:59:45 · 616 阅读 · 0 评论 -
Java中缀表达式计算
表达式计算(中缀表达式)1. 分析通过index索引遍历表达式如果发现为数字则入数字栈如果扫描到为符号则:如果符号栈为空则直接入栈如果符号栈不为空,则进行比较:如果当前符号优先级小于或等于栈中的操作符,则需要从数字栈中pop出两个数,再从符号栈中pop出一个符号,进行运算,将结果入数字栈,如果当前**操作读优先级大于栈中符号优先级则直接入符号栈**。当表达式扫描完...原创 2020-01-28 17:40:29 · 369 阅读 · 0 评论 -
Java数据结构——链表和栈
链表(Linked List)一、概述链表是有序的列表,他在内存中的存储如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Grazwmvg-1580196847881)(F:\Java笔记\图片\链表.png)]链表以节点的方式存储,是链式存储结构每个节点包含data域,next域:指向下一个节点如图:链表的每个节点不一定是连续存储链表分带头节点的...原创 2020-01-28 15:36:44 · 425 阅读 · 0 评论