自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 二叉树非递归遍历

public class BiTreeTraversal { static class TreeNode { int val; TreeNode left; TreeNode right; } //先序遍历 void preOrder(TreeNode root) { if (root == nu...

2019-08-27 21:46:01 206 2

原创 矩阵压缩存储

三对角矩阵:非零元素,有|i-j|≤1,其余位置均为0其中元素总数为:2+3*(n-2)+2+1=3n-2+1定义一个一维数组B[3n-2],则ai,j在B中的位置为k(注意k从0开始)则在ai,j之前的元素个数为第1行:2第2行:3第3行:3...第i-1行:3第i行:j-i+1则k=2+3*(i-2)+j-i+1=2i+j-3若已知k,则ai...

2019-08-27 19:46:24 351

原创 最短路径算法-java实现

弗洛伊德算法(Floyd):先初始化,两个矩阵,一个是图的邻接矩阵D,一个是路径矩阵P。之后,沿着对角线,更新矩阵D和P:例如:D[0][2]更新为锁定的行列下的,D[0][1]+D[1][2]=4所以,P[0][2],从0点到达了2点时,中途还经过了1点,所以P[0][2]最后计算完,根据P矩阵,复原路径:例如:P[0][8]=1,说明经过了第一个节点v1,然后...

2019-07-25 15:18:26 1610 1

原创 Java优先队列

PriorityQueue基于优先级堆。若没有提供比较器,则使用Collection的自然顺序来排序元素。PriorityQueue的iterator()不保证,以任何特定顺序,遍历队列元素。contains() 线性时间 peek()、element()、size() 常量时间 offer()、poll()、remove() O(log(n)) off...

2019-07-25 11:19:45 331 1

原创 《C++Primer》学习笔记(14、重载运算与类型转换)

不能被重载的运算符::: .* . ? : 重载&、|、和逗号运算符,无法保留运算对象求值顺序规则,短路求值属性。重载&&和||,无法保留内置运算符的。重载取地址运算符和逗号运算符,会使得它们的行为,异于常态。赋值运算符和复合赋值运算符,应该返回左侧运算对象的一个引用。必须是成员 =、[]、()、-> 建议是成员 ...

2019-07-18 15:35:16 143

原创 《机器学习实战》学习笔记(5、Logistic回归)

回归:若有一些数据点,用一条直线对这些点进行拟合的过程。训练分类器时的做法,寻找最佳拟合参数,使用最优化算法。准备数据,要求数据类型为数值型;训练算法,寻找最佳的分类回归系数。使用算法,输入数据,转化为结构化数值,基于回归系数,对这些数值进行回归计算,判定分类。基于Logistic回归和Sigmoid函数的分类:计算代价不高,但容易欠拟合,分类精度不高。Sigmoid函数,看起...

2019-07-15 21:58:23 172

原创 C++基础芝士

基本类型的字节数:C标准中没有规定,哪个基本类型应该是多少字节数。这个与机器、OS、编译器有关。比如,在32bits的操作系统系,VC++的编译器下int类型为占4个字节;而在tuborC下则是2个字节。int,long 的宽度都可能随编译器而变。但有几条铁定的原则(ANSI/ISO制订的): sizeof(shortint)<=sizeof(int) si...

2019-07-13 09:58:59 151

原创 《机器学习实战》学习笔记(4、朴素贝叶斯)

朴素:因为整个形式化过程,只做最原始、最简单的假设。可利用Python的文本处理能力,将文档切分成词向量,然后利用词向量对文档进行分类。优点:数据少有效,可处理多类别。缺点:只适合,标称型数据。核心思想:选择具有最高概率的决策。使用朴素贝叶斯进行文档分类:在文档分类中,整个文档是实例,而电子邮件中的某些元素则构成特征。准备数据:可使用数值型或布尔型数据;分析数据:使用直...

2019-07-11 20:37:40 267

原创 《C++Primer》学习笔记(13、拷贝控制)

拷贝构造函数:如果一个构造函数的第一个参数是:自身类类型的引用,(且任何额外参数都有默认值)。没有拷贝构造函数,或者定义了其他构造函数,则编译器,合成拷贝构造函数。可使用合成拷贝构造函数,阻止拷贝某类类型的对象。在合成拷贝构造函数中,类中每个成员的类型决定了它如何拷贝,该调用拷贝构造函数就调用。直接初始化:要求编译器使用普通的函数匹配。拷贝初始化:要求编译器,将右侧...

2019-07-11 17:34:44 249 1

原创 《机器学习实战》学习笔记(3、决策树)

k-近邻算法,可以完成很多分类任务。但最大的缺点就是,无法给出数据的内在含义。决策树的主要优势在于,数据形式非常容易理解。决策树的一个重要任务,使用不熟悉的数据集合,并从中提取出一系列规则,在这些机器根据,数据集创建规则时,就是机器学习的过程。优点:计算复杂度低,输出结果易于理解,对中间值的缺失不敏感,可处理不相关特征数据。缺点:可能会产生过度匹配问题。适用于,数值型和标称型。...

2019-07-10 20:14:20 238

原创 《机器学习实战》学习笔记(2、k-近邻算法)

该算法采用:测量不同特征值之间的距离方法进行分类优点:精度高、对异常值不敏感、无数据输入假定。缺点:计算复杂度和空间复杂度都高。工作原理:存在样本训练集和对应的标签。输入没有标签的新数据后,将新数据的每个特征与,样本数据的对应特征进行比较,然后提取样本集中,特征最近邻的分类标签。一般选样本集中,前k个最相似的数据。k-近邻算法的一般流程:收集数据、准备数据(距离计算,最好是...

2019-07-03 23:50:18 250

原创 《C++Primer》学习笔记(12、动态数组)

局部static对象在第一次使用前分配,在程序结束时销毁。静态内存:保存局部static对象、类static数据成员、定义在任何函数之外的变量。static对象在使用前分配。栈内存:保存定义在函数内的非static对象。栈对象,仅在其定义的程序块运行时才存在。每个程序还拥有一个内存池,堆内存:存储动态分配的对象。shared_ptr<string> p1; //可...

2019-07-03 11:59:28 145

原创 《Java EE SSM框架》学习笔记(7、MyBatis的解析和运行原理)

MyBatis的运行过程,分两步:1、读取配置文件,缓存到Configuration对象,用以创建SqlSessionFactory。2、SqlSession的执行过程。掌握源码中的技巧、设计和开发模式,对我们大有裨益。构建SqlSessionFactory过程:MyBatis采用Builder模式,去创建SqlSessionFactory。实际,通过SqlSessionF...

2019-07-01 21:12:35 199

原创 深度优先和广度优先搜索

public class Search { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; ...

2019-06-26 21:59:08 118

原创 《HBase不睡觉书》学习笔记(1、初识HBase)

海量数据与NoSQL:伯克利大学Eric Brewer教授,提出一个CAP理论:Consistency(一致性):数据一致更新。Availability(可用性):良好的响应性能。Partition tolerance(分区容错性):可靠性。定理:任何分布式系统,只可同时满足二点,没法三者兼顾。对于CAP特性,带来了NoSQL。但NoSQL对事务性的要求并不严格。...

2019-06-18 23:22:42 676

原创 排序

快速排序: public class QuickSort { public static void quickSort(int[] arr, int low, int high) { int i, j, temp, t; if (low > high) { return; } i = low...

2019-06-18 10:18:25 130

原创 《C++Primer》学习笔记(10、泛型算法)

泛型算法:称为算法:因为它们实现了一些经典算法的,公共接口。称为泛型:它们可用于,不同类型的元素和多种容器类型。概述:大部分算法,都定义在头文件,algorithm中;在头文件,numeric中,还定义了数值泛型算法。标准库算法find:查找范围,[ vec.cbegin(),vec.cend() ],vec.cend()表示尾元素的后一个位置。对于向量vector v...

2019-06-15 17:49:53 195

原创 《Java EE SSM框架》学习笔记(6、动态SQL)

代码链接:https://share.weiyun.com/5YP3PDPif元素的使用:动态拼接某个条件choose、when、otherwise元素:只会挑选一个when或otherwise执行trim、where、set元素:用trim去掉一些多余的sql语法:prefix:语句的前缀。prefixOverrides:需要去掉的哪种字符...

2019-06-14 00:01:37 175

原创 图论-有向图

基础图:将D中每条有向边改为无向边。定向图:将每条无向边,改为有向边。一个有向图的基础图唯一,而一个图的定向图不唯一。强连通图:任意两点是双向连通的。若连通图:基础图是连通的。单向连通图:任意两点是单向连通的。关系:强连通一定单向连通,单向连通一定弱连通。有向树:定义:有向图D的基础图是树。根树:只有一个点的入度为0,其余点的入度均为1,的非平凡树。树...

2019-05-29 01:45:20 1433

原创 图论-图的着色

四色猜想:每个平面地图,均可最多用到四种色,对其国家着色,使相邻国家着不同色。图的边着色:色素:{1,2,...,k}k边着色:π:E->{1,2,...,k}。是个映射。着色是正常的:两条相邻的边e1,e2,通过π,映射成不同颜色,如G的边色数:G的正常k边着色的,最小k值。记为G是k边可着色的:图G存在一个正常k边着色。分划:有限集A的子集族,里面任何两...

2019-05-28 16:15:04 6167

原创 图论-平面图

G可嵌入平面(可平面图):边不交叉。G的一个平面嵌入:边不交叉的一种画法、平面图:G的平面嵌入表示的图。面:平面图G,将平面分成若干个区域。每个区域的内部,连同边界则是面。外部面:无界的区域。每个平面图,有且仅有一个外部面。面f的次数:构成f的边界的次数,割边计算两次。记为deg(f)。例子:ps:无论是不是割边,边e都被计算了两次。ps:有两个面,...

2019-05-27 01:08:31 7316

原创 图论-匹配和因子分解

匹配:匹配M:M是E的一个,不包含环的子集,它的任意两条边在G中均不相邻。M饱和的点v:匹配M的某条边,与顶点v关联。M非饱和的点v:M中无边与顶点v关联。完美匹配M:若G中的每个顶点,都是M饱和的点。最大匹配M:在G中,找不到其它匹配的边数,大于M了。ps:每个完美匹配,都是最大匹配。M交错路:指图G的边,在E\M和M中交替出现,的路。M可扩路:起点和终点,...

2019-05-26 19:54:02 4543 1

原创 图论-Euler图与Hamilton图

Euler图:Euler迹:经过连通图G的每条边的迹。Euler闭迹:经过连通图G的每条边,且回到起点。Euler图:存在欧拉闭迹的图。ps:1->2,一个点出现一次,一定要用掉2条边,每条边又只能出现一次,则表示每个点出现一次,则用2条新边。2->3,若每个点的度至少是2,根据握手定理,m≥n,因此必定有圈。移除一个圈,则圈内的所有的点的度数,都要减2,因此原...

2019-05-24 02:15:48 3828

原创 图论-图的连通度

图的连通度:割边:删去后使G不连通的边。非平凡树每一条边都是割边。ps:若G是非连通图,若在某个连通分支上成立,在整个图上也成立,因为割边本质上是使连通度下降的边,所以只讨论连通图即可。必要性证明:证明G-e是否还是连通图,包含e,若去掉的话,x到y,经过需要走e的路,则用P路代替。充分性证明:因为(u,v)路P是在G-e上选择的,那肯定不含e,而且也设uv=e,再加回e,肯定...

2019-05-23 02:36:17 6871 1

原创 图论-树原理

树的概念与性质:树:连通的无圈图。树也是森林。平凡图就是平凡树。度数大于1的顶点为分支点。等于1为树叶。ps:因为至多只有一片树叶,则剩下的n-1个顶点的度均≥2,所以有最小连通图:减去任意一条边,均会使得图不连通。ps:无圈的连通图就是树。树的中心与形心:v的离心率:取离v最远的顶点的距离。r(G)图的半径:取每个顶点的离心率最小的值。...

2019-05-22 01:19:08 5488

原创 图论-图和简单图

图和简单图:一个图就是,由一个表示具体事物的点的集合,和表示事物之间联系的一些线的集合所构成。平凡图:只有一个点而无边的图。空图:边集为空的图。假设u和v是e的端点,称u与e相关联。图的同构:且和的重数相同。等价类:按照同构关系可划分。商集:所有等价类为元素构成的集合。完全偶图:具有二分类(X,Y)的简单偶图,其中X的每个顶点与Y的每个顶点相连。...

2019-05-21 18:44:55 13332

原创 《GitHub入门与实践》学习笔记(二)

Git仓库管理功能是,GitHub的核心。版本管理就是管理更新的历史记录。如记录添加或更改源代码的过程,回滚到特定阶段,恢复误删除的文件。集中型:以Subversion为代表,将所有数据存放在服务器当中,有便于管理的优点。但开发者所处的环境不能连接服务器,就无法获取最新的源代码。分散性:GitHub将仓库Fork给了每一个用户。Fork:将GitHub的某一个特定仓库复制到...

2019-05-20 20:46:17 92

原创 《GitHub入门与实践》学习笔记(一)

GitHub位于美国旧金山,吉祥物为octocat。GitHub则是在网络上提供Git仓库的一项服务。Pull Request是指开发者在本地对源代码进行更改后,向GitHub中托管的Git仓库请求合并的功能。任务管理和BUG报告可以通过Issue进行交互。Wiki功能:开发者可创建文档,进行公开、共享,更新记录也在Git中管理,可让用户轻松更改。GFM:用户所有文字输...

2019-05-20 20:12:41 141

原创 《Java EE SSM框架》学习笔记(5、映射器)

demo链接地址:https://share.weiyun.com/5iCY76r 密码:hxf568不使用注解的方式,实现映射器:1、面对复杂性,SQL会显得无力。2、注解的可读性较差。3、注解丢失了XML上下文相互引用的功能。resultMap:用来描述从数据库结果集中来加载对象,它是最复杂、最强大的元素。select元素——查询语句自动映射和驼峰映射:...

2019-05-20 01:01:10 374

原创 《Java EE SSM框架》学习笔记(4)

项目路径:https://share.weiyun.com/5oetQPGMyBatis配置项的顺序不能颠倒,如果颠倒了它们的顺序,则启动阶段就会发生异常,导致程序无法运行。使用property子元素:这样定义一次就可以到处引用了,如${database.username},但要定义的参数太多,则使用properties文件。使用properties文件:定义jdbc...

2019-05-17 22:26:28 308

原创 《Java EE SSM框架》学习笔记(3)

项目地址:https://share.weiyun.com/5ABeIzhMybatis成功之处:1、不屏蔽SQL,精准定位SQL语句,可对其进行优化和改造,提高系统性能。2、提供强大灵活的映射机制,提供动态SQL的功能。3、提供使用Mapper的接口编程,一个接口和一个XML就能创建映射器。Mybatis所需要的包和源码:https://github.com/mybat...

2019-05-16 23:24:34 1305

原创 Android多媒体应用——AudioTrack, AudioRecord

github源码:https://github.com/heinsven/Test5.gitAudioRecord 是Android提供的用于录音的工具类。AudioRecord管理应用的各类音频资源,记录平台的各类输入设备的音频输入。AudioRecord实现Android录音的流程:构造一个AudioRecord对象,其中需要的最小录音缓存buffer大小可以通过getM...

2019-05-07 02:19:18 233

原创 《生成对抗网络入门指南》学习笔记(一)

人工智能元年:2017-AlphaGo 击败了柯洁。图灵测试:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。打造人工大脑,需要回答的三个问题:1)大脑如何运转——正在探索2)大脑的运行机制可否,拆分成差异性极低的可衡量单位——神经学家解答是,神经元3)是否有,其它人工产物可等价体现,这一单元粒度的价值或功能——信息学家解答是,可...

2019-05-05 18:43:39 827

原创 《Java EE SSM框架》学习笔记(15-2)

Spring MVC的文件上传是通过MultipartResolver处理的。它有两个实现类:CommonsMultipartResolver:依赖于第三方包。StandardServletMultipartResolver:是Spring3.1版本后的产物。可通过注解配置MultipartResolver,写在WebConfig类中。multipartResolve...

2019-04-27 15:00:46 109

原创 《生成对抗网络入门指南》学习笔记(五)

GAN的优化问题:训练GAN最大的问题:训练的不稳定性。理论上,应优先训练好判别器,但实际上,判别器训练地越好,生成器反而越难优化。真实数据的分布,通常是一个低维度流形。所谓流形,是指数据虽然分布在高维度空间里,但实际上数据并不具备高维度特性,而是存在于一个嵌入在高维度的低维度空间里。生成器要做的事情是,把一个低维度的空间Z映射到与真实数据相同的高维度空间上。我们希望...

2019-04-24 22:14:29 597

原创 搜索框定制

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_conten...

2019-04-19 23:28:31 155 1

原创 使用Fragment+RadioButton实现底部导航栏

FrameLayout的布局文件:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_...

2019-04-19 22:06:47 468

原创 ButterKnife插件的安装与使用

Android Studio中安装ButterKnife插件:settings->plugins界面在项目的bulid.gradle中添加依赖,如下图所示:implementation 'com.jakewharton:butterknife:7.0.0'在defaultConfig中添加如下选项:javaCompileOptions { annotationPr...

2019-04-19 20:49:29 486

原创 《Java EE SSM框架》学习笔记(14)

Spring MVC的初始化和流程:Spring MVC是Spring提供给Web应用的框架设计。Spring MVC的根本是,它的流程和各个组件的应用和改造。早期的MVC模型为:Servlet+JSP+Java Bean,使得前后台分离。MVC的经典框架:Struts2和Hibernate,使得控制器和模型层分离,Java代码可以得到重用。如今互联网开发:Web页面大部分采用...

2019-04-08 22:44:28 303 1

原创 Android多媒体应用——Ringtone、SoundPool、MediaPlayer

github源码:https://github.com/heinsven/Test5.gitpackage com.example.uestc.test5;import android.app.Activity;import android.content.res.AssetFileDescriptor;import android.media.AudioManager;impo...

2019-04-05 12:39:17 480

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除