01 2021 档案
摘要:1、算法简单描述 1).输入:一个加权连通图,其中顶点集合为V,边集合为E; 2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空; 3).重复下列操作,直到Vnew = V: a.在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而
阅读全文
摘要:1.算法简单描述 1).记Graph中有v个顶点,e个边 2).新建图Graphnew,Graphnew中拥有原图中相同的e个顶点,但没有边 3).将原图Graph中所有e个边按权值从小到大排序 4).循环:从权值最小的边开始遍历每条边 直至图Graph中所有的节点都在同一个连通分量中 if 这条边
阅读全文
摘要:拓扑排序代码: public class Topological { private Iterable<Integer> order; // topological order private int[] rank; // rank[v] = rank of vertex v in order pu
阅读全文
摘要:有向图中基于深度优先搜索的顶点排序: 前序:在递归调用之前将顶点加入队列 后序:在递归调用之后将顶点加入队列 逆后序:在递归调用之后将顶点压入栈 代码: public class DepthFirstOrder { private boolean[] marked; // marked[v] = h
阅读全文
摘要:判断图中是否有一个有向环: edgeTo 数组找到有向环的所有顶点 onStack 调用dfs时将其设置为true,调用结束时设为false。 public class DirectedCycle { private boolean[] marked; // marked[v] = has vert
阅读全文
摘要:判断一个图是否为无环图: 完整代码 public class Cycle { private boolean[] marked; private int[] edgeTo; private Stack<Integer> cycle; /** * Determines whether the undi
阅读全文
摘要:使用深度优先搜索查找图中的连通分量:思想就是在深度优先搜索的基础上,在加上一个连通分量的数值标识( count),用于统计有几个连通分量。 public class CC { private boolean[] marked; // marked[v] = has vertex v been mar
阅读全文
摘要:广度优先搜索代码: public class BreadthFirstPaths { private static final int INFINITY = Integer.MAX_VALUE; private boolean[] marked; // marked[v] = is there an
阅读全文
摘要:深度优先搜索的代码: public class DepthFirstSearch { private boolean[] marked; // marked[v] = is there an s-v path? private int count; // number of vertices con
阅读全文
摘要:大数据下,数据大都比较稀疏,用矩阵存储的数据是稀疏的,大多数项是0。 算法四中介绍用稀疏矩阵的形式来存储数组 点乘的稀疏向量代码 public double dot(double[] that) { double sum = 0.0; for (int i : st.keys()) sum += t
阅读全文
摘要:基于线性探测的散列表的代码: public void put(Key key, Value val) { if (val == null) { delete(key); return; } // double table size if 50% full if (n >= m/2) resize(2
阅读全文
摘要:算法四中给出了红黑树的构造代码: import edu.princeton.cs.algs4.Queue; import edu.princeton.cs.algs4.StdOut; public class RedBlackLiteBST<Key extends Comparable<Key>,
阅读全文
摘要:中序遍历就是将一个二叉树的所有结点按照顺序打印出来(假定这个数的构造是左节点小于父节点,右节点大于父节点) private void print(Node x) { if (x == null) return; print(x.left); StdOut.println(x.key); print(
阅读全文
摘要:二叉树的删除操作,其中删除最小值最大值比较容易,就是一直不停的遍历二叉树的左子树和右子树,一直找到没有其左子树和右子树。然后直接将其删除就可以了 一、删除最小值(假定这个二叉树的构造是左节点小于父节点,右节点大于父节点):从根节点开始遍历,如果有左子树就继续遍历左子树,直至没有左节点为止 代码如下
阅读全文
摘要:最近在看算法4的书,需要自己在IDEA中运行书上的示例,所以这篇文章来讲解如何去使用书上的代码以及怎么去跑这些代码。 一、下载algs4-data.zip和algs4.jar 1、在算法4的官网中下载这两个文件 2、下载完成后解压以及配置系统环境变量 将algs4-data.zip解压至你的项目中,
阅读全文
摘要:在Android的View中,手势检测用于辅助检测用户单击、滑动、长按、双击等行为。我们这篇文章主要介绍如何使用它: 一、GestureDetector.OnGestureListener 1、我们可以通过这个接口监听一些手势 代码如下: public class MainActivity exte
阅读全文
摘要:堆排序的算法思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了 a.将无需序列构建成一个堆,根据升序降序需求选择大顶堆或小顶
阅读全文
摘要:多向归并是将多个分类的输入流合并为一个分类的输出流。 Input: m1.txt:A B C F G I I Z m2.txt:B D H P Q Q m3.txt:A B E F J N Output: A A B B B C D E F F G H I I J N P Q Q Z 分析: 1、由
阅读全文
摘要:虹软人脸识别sdk使用-android(一)在这篇文章中简单的介绍了如何接入SDK,以及如何使用虹软的一些接口,这篇主要介绍如何接入人脸识别框 如何去画人脸框,这里有两种方法,第一种是获得人脸识别后的图像的坐标,然后自己去画Rect,第二种是直接用虹软的人脸框,移植到自己的项目中 一、获得人脸坐标(
阅读全文
摘要:Android+Camera+SurfaceView自定义相机系列在这篇文章中已经介绍了如何使用camera+surfaceview 在此基础上我们介绍如何接入虹软的人脸识别功能。首先自己去注册虹软的开发者账号,并自行下载SDK,SDK的APP_ID和SDK_KEY是唯一的,可以激活一台设备,完成认
阅读全文
摘要:这篇教程主要讲如何使用GitHub的命令上传代码以及更新代码,默认电脑已经安装了git软件 一、创建仓库 1、点击new repository,创建仓库 填写相关信息 创建完成后会显示这些命令 2、进入要上传的文件夹,右键选择git bash here 3、一次输入这些代码 1 # 初始化 2 gi
阅读全文
摘要:本文主要介绍如何使用camera+surfaceview来自定义相机,我们使用自定义相机进行拍照、扫描二维码等等。Camera是属于硬件部分,在开发中会经常遇到如何使用相机。在上一篇文章中介绍了如何动态的申请权限,使用相机是需要动态申请权限的。 根据官方文档介绍在拍摄照片时,用户通常要先看到拍摄目标
阅读全文
摘要:申请权限对于安卓开发很重要,从Android6.0开始,Android系统提供动态申请权限的机制, APP在使用危险权限时,需要用户的授权才可进一步操作。所以这一篇文章介绍如何动态申请权限。非常简单。 一、在AndroidManifest.xml配置所需要的权限,代码如下 <?xml version
阅读全文

浙公网安备 33010602011771号