【Java数据结构与算法】迪杰斯特拉算法
迪杰斯特拉(Dijkstra)算法基本介绍
应用场景
最短路径问题
现在有7个村庄(A,B,C,D,E,F,G),有6个邮差,从G点出发,需要把邮件分别送到A,B,C,D,E,F这6个村庄。
...
【Java数据结构与算法】克鲁斯卡尔算法
克鲁斯卡尔(Kruskal)算法基本介绍
应用场景
公交站问题
某城市新增7个站点(A,B,C,D,E,F,G),现在需要修路把7个站点连通。
各个站点的距离用边线表示(权),例如A-B距离1 ...
【Java数据结构与算法】贪心算法
贪心算法基本介绍
应用场景
集合覆盖问题
假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号。
广播台
覆盖地区
K1
“ ...
【Java数据结构与算法】普利姆算法
普利姆算法(Prim)和MST介绍
应用场景
修路问题
乡村有7个村庄(A,B,C,D,E,F,G),现在需要修路把7个村庄连通。
各个村庄的举例用边线表示(权),比如A-B距离5公里。
问: ...
【Java数据结构与算法】动态规划算法和KMP算法
动态规划算法基本介绍
应用场景
背包问题:有一个背包,容量为4磅,现有如下物品
物品
重量
价格
吉他(G)
1
1500
音响(S)
4
3000
电脑(L)
3
2000 ...
【Java数据结构与算法】二分查找算法和分治算法
二分查找算法(非递归)
基本介绍
我们之前学过二分查找算法,是使用递归的方式,这里主要讲二分查找算法的非递归方式;
二分查找法只适用于从有序的数列中进行查找(比如数组和字母),将数列排序后再进行查找 ...
【Java数据结构与算法】图的基本介绍和算法
图的基本介绍和存储形式
为什么要学图
我们之前学习的线性表和树都存在一定局限性;
线性表局限于一个直接前驱和一个后继的关系;
树也只能有一个直接前驱,也就是父节点;
当我们需要表示多对多关系时,就需 ...
【Java数据结构与算法】多路查找树
多叉树原理图解
二叉树问题分析
二叉树的操作效率较高,但是也会存在问题;
二叉树需要加载到内存,如果二叉树节点较少,基本没有什么问题,如果二叉树节点很多,那就可能存在如下问题:
问题1:在构建二叉 ...
【Java数据结构与算法】平衡二叉树
平衡二叉树(AVL树)介绍
案例分析
平衡二叉树可能存在的问题
给你一个数列{1,2,3,4,5,6},要求创建一棵二叉排序树(BST),并分析问题所在。
存在的问题:
左子树全部为空,从形式 ...
【Java数据结构与算法】二叉排序树
二叉排序树(BST)介绍
二叉排序树例子
需求
给你一个数列{7,3,10,12,5,1,9},要求能够高效的完成对数据的查询和添加。
解决方案分析
使用数组
数组未排序,优点:直接再数组 ...