随笔 - 34, 文章 - 0, 评论 - 0, 阅读 - 13595
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

08 2020 档案

摘要:算法思路 准备:边类,图类; 根据图的邻接矩阵获得边集合,并将边按照边的权值进行排序(升序); 依次取边集合中的边,如果取出来的这条边不和已经选择的边构成回路就添加这条边,否则取边集合中的下一条边。 Q:怎么判断新取的边和已经选取的边会不会构成回路? A:引入一个数组,记录每个顶点的终点,如果新取的 阅读全文

posted @ 2020-08-21 18:59 池塘鱼 阅读(348) 评论(0) 推荐(0) 编辑

摘要:最小生成树 最小生成树(Minimum Cost Spanning Tree),简称MST。 给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树 。 最小生成树的特征:N个顶点,一定有N-1条边;包含全部顶点;N-1条边都在图中。 求最小生成树的算法主要是普里 阅读全文

posted @ 2020-08-21 14:02 池塘鱼 阅读(407) 评论(0) 推荐(0) 编辑

摘要:迪杰斯特拉算法VS弗洛伊德算法 迪杰斯特拉算法是求单源最短路径,通过选定的被访问顶点,求出从出发访问顶点到其他顶点的最短路径;弗洛伊德算法中每一个顶点都是出发访问点,所以需要将每一个顶点看做被访问顶点,求出从每一个顶点到其他顶点的最短路径。 弗洛伊德算法比迪杰斯特拉算法好实现,但是时间复杂度要更高。 阅读全文

posted @ 2020-08-21 13:26 池塘鱼 阅读(283) 评论(0) 推荐(0) 编辑

摘要:https://www.jianshu.com/p/ff6db00ad866 这篇文章相当清楚。 对代码做了一点小改动,让输出结点名而不是结点下标。 package com.ex.greedy; public class Dijkstra { static final int N=10000; pu 阅读全文

posted @ 2020-08-21 11:06 池塘鱼 阅读(71) 评论(0) 推荐(0) 编辑

摘要:准备工作 图的结构: //结点集合 ArrayList<String> nodes; //边的个数 private int edgeNum; //邻接矩阵:边是否连通或边之间的权值 private int[][] weight; //记录结点是否被访问过:用于遍历 private boolean[] 阅读全文

posted @ 2020-08-20 17:29 池塘鱼 阅读(130) 评论(0) 推荐(0) 编辑

摘要:java中有这样一个方法可以帮助我们实现数组的自定义排序:Arrays类的public static <T> void sort(T[] a, Comparator<? super T> c) 我们只需要实现Comparator接口,也就是实现其中的compare方法,在该方法中按照自己希望的规则来 阅读全文

posted @ 2020-08-16 18:05 池塘鱼 阅读(3679) 评论(0) 推荐(0) 编辑

摘要:设计模式,是为了让程序(软件),具有更好的代码重用性、可读性、可扩展性、可靠性,使程序呈现高内聚、低耦合的特性。 代码重用性:相同功能的代码,不用多次编写 可读性:编程规范性,便于阅读和理解 可扩展性(可维护性):添加新功能时非常方便。 可靠性:当我们添加新功能后,对原来的功能没有影响。 内聚:模块 阅读全文

posted @ 2020-08-15 21:27 池塘鱼 阅读(145) 评论(0) 推荐(0) 编辑

摘要:一、相关术语: 字符集(charset):也叫编码表,是一个系统支持的所有字符的集合,包括各个国家的文字、数字、标点符号、图形符号等。 字符编码(Character Encoding):自然语言的字符和计算机二进制之间的一种转换规则。 编码:字符——>字节 解码:字节——>字符 二、常见字符编码: 阅读全文

posted @ 2020-08-10 17:21 池塘鱼 阅读(1009) 评论(0) 推荐(0) 编辑

摘要:一、IO流概述 日常中,数据被保存在硬盘、U盘等设备上,IO技术的作用主要就是解决设备和设备之间的数据传输问题,比如:硬盘 >内存,内存数据 >硬盘中,把键盘的数据写入到内存等。 我们进行的数据传输,可以看作一种数据的流动,通过“流”进行数据传输。 流的概念:流是对数据传输的总称或抽象,它的特性是进 阅读全文

posted @ 2020-08-08 21:44 池塘鱼 阅读(358) 评论(0) 推荐(0) 编辑

摘要:一、引言 java.io.File 类有两个方法可以遍历文件数组,分别是list()和listFiles(),前者返回相对路径的字符串数组,后者返回绝对路径的File数组。如果要实现文件搜索功能,如在D盘的某个文件夹下搜索".java"结尾的文件,就需要用到遍历方法,辅以文件名判断。代码见下: pa 阅读全文

posted @ 2020-08-08 21:12 池塘鱼 阅读(436) 评论(0) 推荐(0) 编辑

摘要:java.io.File类的遍历方法list()和listFiles()都是只获取一级目录和文件,如果希望递归获取目录的多级文件,需要自行编写方法。 package com.ex.file; import java.io.File; import java.io.IOException; impor 阅读全文

posted @ 2020-08-07 11:42 池塘鱼 阅读(224) 评论(0) 推荐(0) 编辑

摘要:一、概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。并且因为java.io.File类是抽象表示,任何操作系统都可以使用。 二、路径 绝对路径:是一个完整的路径,以盘符开头(如C:)。 相对路径:是一个简化的路径,相对于当前路径拼接。 注意: 阅读全文

posted @ 2020-08-06 21:25 池塘鱼 阅读(86) 评论(0) 推荐(0) 编辑

摘要:一、概述 1.树的基本定义 树是由n(n>=1)个有限结点构成的一个具有层次关系的集合。之所以叫做“树”,是因为看起来像是一颗倒挂的、根在上叶在下的树。 树具有如下特征: 没有父结点的结点为根结点; 没有子结点的结点为叶节点; 每个非根结点有且仅有一个父结点; 每个结点有零或多个子结点; 2.树的相 阅读全文

posted @ 2020-08-06 16:07 池塘鱼 阅读(227) 评论(0) 推荐(0) 编辑

摘要:一、概述 作用:栈可以理解为给数据临时休息的地方,数据可以进入栈,也可以从栈中出去。 特点:栈是一种基于先进后出(FILO)的数据结构,是一种只能在一端进行插入删除操作的特殊线性表。数据进入栈成为“压栈”或“入栈”,先进入的数据被压入栈底,最后进入的数据在栈顶,如果要获取数据,只能从栈顶开始弹出数据 阅读全文

posted @ 2020-08-04 17:32 池塘鱼 阅读(151) 评论(0) 推荐(0) 编辑

摘要:一、概述 链表:链表是一种物理存储结构上非连续非顺序的存储结构,其物理结构不能直观地表示其逻辑结构,链表的逻辑结构是通过结点的指针域连接起来的。链表由一系列的结点组成,结点由选择的操作动态生成。 特点:增删快、查询慢(因为无法直接索引访问,要遍历查找) 二、链表实现 0.编写前需知 下面的类中的对  阅读全文

posted @ 2020-08-03 22:06 池塘鱼 阅读(239) 评论(0) 推荐(0) 编辑

摘要:一、排序的分类 稳定性:通俗的讲,就是能保证两个相等的数据在排序前和排序后的先后顺序不发生改变。 类型 插入排序:找到和适合的位置插入 交换排序:边比较边交换 选择排序:一趟比较完再交换 二、性能分析 注意:以下提及的最好情况为全有序,最坏情况为全逆序。除了快速排序,最坏情况是基准值选了最大值或最小 阅读全文

posted @ 2020-08-03 13:13 池塘鱼 阅读(417) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示