![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 79
加油吧~!少年
本人新手程序员一枚,初来乍到,请多多指教
展开
-
(迪杰斯特拉)Dijkstra算法详细讲解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A06n03gB-1594116879402)(C:\Users\DELL\AppData\Local\Temp\1594115399829.png)] 迪杰斯特拉算法的朴素写法 我们用这个图来模拟一下迪杰斯特拉算法,其实这个算法就是贪心加上广搜,理解了感觉非常简单 贪心体现在哪呢? 广搜又体现在哪呢? 下面我们就来模拟一遍这个算 法的朴素写法,写完朴素写法之后我们试着对其优化。 此算法主要是解决,在一原创 2020-07-07 18:17:44 · 2108 阅读 · 0 评论 -
堆排序
今天我们说堆排序 基础常识 在一个二叉树里面 一个节点下标是i, 他的左儿子节点是 i * 2 + 1, 右儿子是 i * 2 + 2,他的父亲节点是 (i - 1)/2,所谓堆,就是任何一颗数, 他的父亲节点都比任何一个儿子节点都大, 递归子树也是 我们看下面一个数组 [44, 15, 60, 31, 41, 17, 32, 46] 画出二叉树就是 我们用两种方式进行堆排序 1. 我们从零开始构造一颗最大堆, 就是将原数组中的数,循环遍历构造最大堆, 最大堆我们用一个跟原数组大小 相同的数组原创 2020-06-18 14:57:55 · 108 阅读 · 0 评论 -
普利姆(Prim)算法
普利姆算法主要是寻找图的最小生成树,最小生成树自己百度啦直接看普利姆算法的工作流程啊 假设我们从A点开始生成最小生成树 A的邻边为 : (A-C)[7] (A-G)[2] (A-B)[5] 1. 从邻边中删选最小权值的结点,将其加入生成树, 所以我们就有两个节点 (A, G) 2. 从(A, G)整体子图的邻边中筛选出一个最小权值节点 (A-C)[7] (G-E)[4] (G-B)[3] (G-F)[6] 3. 选出是B节点, 将其加入生成树 ,所以现在是 (A,B,G)三个节点了 4.原创 2020-06-16 21:32:54 · 184 阅读 · 0 评论 -
第十届蓝桥杯--灵能传输
紧接着上一篇博文,我们谈一题前缀和的应用,这一题是第十届蓝桥杯第十届最后一题,难度没多大,就是有点难想到用前缀和. 我们既然说了用前缀和那么我们用前缀和来分析一下: 我们假设有一个序列 a1 a2 a3 这个序列的前缀和为 a1 a1+a2 a1+a2+a3 如果 a2< ...原创 2019-12-28 20:47:57 · 830 阅读 · 0 评论 -
前缀和
今天我们说一种思想,前缀和思想. 我们就两种前缀和实例来说明. 1.一维前缀和 给定一堆数,找出任意区间的和. 话不多说看代码 public static void fun1() { Scanner scan = new Scanner(System.in); int count = scan.nextInt(); int[] sum = new int[count + 1]; ...原创 2019-12-27 18:48:17 · 98 阅读 · 0 评论 -
第十届蓝桥杯javaB组 迷宫
今天我们说的是 第十届蓝桥杯 第五题java B组 第五题 标题:迷宫 【问题描述】 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方。 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这 个它的上、下、左、右四个方向之一。 对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通...原创 2019-12-19 18:41:33 · 651 阅读 · 0 评论 -
第六届蓝桥杯--牌型种数问题
今天说一道有意思的题目,第六届蓝桥杯第七题,话不多说,直接上题: 小明被劫持到X赌城,被迫与其他3人玩牌。 一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。 这时,小明脑子里突然冒出一个问题: 如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢? 一开始我也是用的dfs暴力搜索,跑了十来分钟没结果,就没跑了,这里代码就不贴...原创 2019-12-16 14:18:43 · 331 阅读 · 1 评论 -
课程表-算法设计
从今天开始 接下来的几个月 里我都在这里分享leecode解题思路和蓝桥杯历届试题的解题思路 。。。 第一天先看一个dfs的题目 : 现在你总共有 n 门课需要选,记为 0 到 n-1。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习? 示例 1: 输...原创 2019-12-15 13:16:53 · 836 阅读 · 0 评论 -
计算行列式的实现
这几天在学习线性代数 ,第一章节,行列式的相关问题,这里就行列式怎么计算给出实现(java实现) 我的思路是这样的 使用dfs深度搜索算法进行搜索 最简单的情况是2*2的行列式,据此我们可以得出代码: public static int fun(int[][] arr) { // 最简单的实现 if (arr.length == 2) { return arr[0][0] * ...原创 2019-09-05 17:10:31 · 925 阅读 · 0 评论 -
浅谈八大排序之希尔排序
其实希尔排序就是对插入排序的一个升级版,要想理解希尔排序,深入理解插入排序是重点, 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个...原创 2019-08-22 18:05:50 · 246 阅读 · 0 评论 -
浅谈八大排序算法之冒泡排序
接下来八天我谈谈我对八大排序算法的理解 从今天开始算是第一天吧,今天说说冒泡排序算法,冒泡排序算法算是众多排序算法中稍微简单的一个了,但是对于冒泡排序,可能许多人代码写的来,但是理解的还是不够深入,今天我就来说说我对冒泡排序的看法吧 所谓冒泡排序就是类似水泡上浮的过程, 在冒泡排序中 我们需要两层嵌套循环,第一层循环 就是每一次将最大的数放到数组的最后一个位置,所以我们需要进行 数组的长度-1...原创 2019-08-06 19:48:45 · 317 阅读 · 0 评论