
算法与数据结构
文章平均质量分 79
加油吧~!少年
本人新手程序员一枚,初来乍到,请多多指教
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
(迪杰斯特拉)Dijkstra算法详细讲解
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A06n03gB-1594116879402)(C:\Users\DELL\AppData\Local\Temp\1594115399829.png)]迪杰斯特拉算法的朴素写法我们用这个图来模拟一下迪杰斯特拉算法,其实这个算法就是贪心加上广搜,理解了感觉非常简单 贪心体现在哪呢? 广搜又体现在哪呢?下面我们就来模拟一遍这个算法的朴素写法,写完朴素写法之后我们试着对其优化。此算法主要是解决,在一原创 2020-07-07 18:17:44 · 2218 阅读 · 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 · 145 阅读 · 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 · 239 阅读 · 0 评论 -
第十届蓝桥杯--灵能传输
紧接着上一篇博文,我们谈一题前缀和的应用,这一题是第十届蓝桥杯第十届最后一题,难度没多大,就是有点难想到用前缀和.我们既然说了用前缀和那么我们用前缀和来分析一下:我们假设有一个序列 a1 a2 a3 这个序列的前缀和为 a1 a1+a2 a1+a2+a3如果 a2<...原创 2019-12-28 20:47:57 · 921 阅读 · 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 · 146 阅读 · 0 评论 -
第十届蓝桥杯javaB组 迷宫
今天我们说的是 第十届蓝桥杯 第五题java B组第五题标题:迷宫【问题描述】下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷宫中,只能从一个位置走到这个它的上、下、左、右四个方向之一。对于上面的迷宫,从入口开始,可以按DRRURRDDDR 的顺序通...原创 2019-12-19 18:41:33 · 756 阅读 · 0 评论 -
第六届蓝桥杯--牌型种数问题
今天说一道有意思的题目,第六届蓝桥杯第七题,话不多说,直接上题:小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?一开始我也是用的dfs暴力搜索,跑了十来分钟没结果,就没跑了,这里代码就不贴...原创 2019-12-16 14:18:43 · 394 阅读 · 1 评论 -
课程表-算法设计
从今天开始 接下来的几个月 里我都在这里分享leecode解题思路和蓝桥杯历届试题的解题思路 。。。第一天先看一个dfs的题目 :现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输...原创 2019-12-15 13:16:53 · 918 阅读 · 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 · 999 阅读 · 0 评论 -
浅谈八大排序之希尔排序
其实希尔排序就是对插入排序的一个升级版,要想理解希尔排序,深入理解插入排序是重点,希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个...原创 2019-08-22 18:05:50 · 295 阅读 · 0 评论 -
浅谈八大排序算法之冒泡排序
接下来八天我谈谈我对八大排序算法的理解从今天开始算是第一天吧,今天说说冒泡排序算法,冒泡排序算法算是众多排序算法中稍微简单的一个了,但是对于冒泡排序,可能许多人代码写的来,但是理解的还是不够深入,今天我就来说说我对冒泡排序的看法吧所谓冒泡排序就是类似水泡上浮的过程,在冒泡排序中 我们需要两层嵌套循环,第一层循环 就是每一次将最大的数放到数组的最后一个位置,所以我们需要进行 数组的长度-1...原创 2019-08-06 19:48:45 · 371 阅读 · 0 评论