- 博客(27)
- 收藏
- 关注
原创 树 相关知识点
深度优先DSF和GFSJava深度 广度优先遍历 https://www.cnblogs.com/skywang12345/p/3711483.html二叉搜索树BST的节点插入和删除:插入:直接插在合适的叶节点位置删除:1、被删除节点为叶节点,直接删除2、被删除节点只有左/右子树,将其用 左/右子树的根节点替换3、被删除节点有左和右子树,将该节点用 树中序遍历时 该节点的直接前驱/...
2019-05-09 10:54:23 275
原创 字符串匹配-KMP算法
字符串匹配-KMP算法KMP算法思想:算法要点KMP算法思想:首先根据子串计算其每一位字符的部分匹配值,得到一个部分匹配表;接着进行比较-位移的比较步骤。其中比较为从左向右依次匹配。如果本轮已匹配字符长度为0,则位移为1,否则,位移的计算公式:本轮比较中已匹配的字符串长度 - 最后一位已匹配字符的部分匹配值。部分匹配值的计算说明:首先,计算对象是:对这个字符串从第一位开始,计算每个子集的部...
2019-05-09 10:52:36 182
原创 软件体系结构问题整理
一、概念性问题1、架构的5个来源需求、涉众、开发组织、架构师、技术环境2、需求的3类,每一类的定义功能性需求,质量需求、约束功能需求:系统需要做什么,系统应当如何为涉众提供价值。质量需求:系统应当满足的整个系统的理想特性。约束:是预定义的设计决策。通过接受设计决策、与其他受影响的设计决策进行协调来满足约束。3、架构的定义SEI:是整个程序或计算系统的结构(Str...
2018-04-09 09:56:38 4538 2
原创 单链表折叠
1->2->3->…->n-1->n 折叠为1->n->2->n-1->3->n-2…分成两半 后半段链表倒过来如何把一个单链表倒序2) 比较数组和链表的访问和插入效率,如何优化单链表的随机访问:跳表3)实现线程安全的缓冲区:互斥volatail 读写锁 reentrantReadWriteLock 如果是高并发的...
2018-03-20 18:19:02 2348 1
原创 减治法解决假币问题
识别假币问题:在n枚外观相同的假币中,有一枚是假币。在一架天平上,我们可以比较任意两组假币。也就是说,通过观察天平是向右倾、向左倾还是停在当中,我们可以判断出两组硬币重量是否相同,或者哪一组比另一组更重,但是我们不知道重多少。问题是:设计一种有效的算法来检测出这枚假币。简化版本:已知假币相对真币较轻或者较重; 普通版本:不知道假币轻还是重 除了每次把硬币分为2份的办法,还可以用更加高效的把...
2018-03-16 21:27:04 3706 2
原创 面试全方位整理列表
Java语言 -重载重写 -多态 -泛型 -容器(线程安全、实现机制arrayList linkedList hashMap等) -并发:锁、线程、线程池 JavaThread源码解析: http://blog.csdn.net/owenchan1987/article/details/72021687socket编程框架 -Spring Bean: spring定义be...
2018-03-16 20:39:26 188
原创 java线程相关知识点整理
1、创建新线程实例: Extends Thread类并重写run方法,创建这个类的实例即可; 或者创建一个类,实现Runnable接口,实现run方法,通过将这个类的实例传入Thread的构造器来创建一个Thread实例,这实例调用start方法时,这个实现类实现的run方法会在这个单独运行中的线程种被自动调用。 两种方法的比较:实现runnable接口更适合于if you are only...
2018-03-16 17:02:01 315
原创 java泛型的Type Inference
关于type inference常见场景: 1、泛型 类实例化,调用构造器时:Map<String, List<String>> myMap = new HashMap<>();Java 7 diamond语法:调用泛型类的构造器时可以用空尖括号只要上下文可推断。称作diamond。 注意:想让type inference推断时必须要有尖括...
2018-03-06 15:40:18 479
转载 Java泛型
原文: https://www.ziwenxie.site/2017/03/01/java-generic/Java泛型详解 引言 Java泛型是jdk1.5中引入的一个新特性,泛型提供了编译时的类型检测机制,该机制允许程序员在编译时检测到非法的类型。 泛型是Java中一个非常重要的知识点,在Java集合类框架中泛型被广泛应用。本文我们将从零开始来看一下Java泛型的设计,将会涉及到通配...
2018-03-06 00:12:21 139
原创 软工I整理——类的状态实现:成员变量
变量:表示数据存储在语言中的抽象。使用变量的好处:可以用名字来代替地址去访问数据,从而使程序更加便于阅读,并通过使用能把名字转化成地址的翻译器来回避绝对地址的问题。 变量不应该只被看做是地址的别名,它可以看做一个抽象的容器,在程序运行过程中存放数据。 作用域:变量在程序中可见的范围。 生存期:变量从创建到消亡的时间。 变量大致分为成员变量和局部变量。 成员变量:面向对象程序设计中通过成员...
2018-02-25 13:13:17 265
原创 求二叉树中节点的最大距离
完成求二叉树中节点间最大距离的代码。两个节点间的距离为包括的节点的个数,路径 上的每个节点只能被包含一次。思路:相距最远的两节点在树中的分布有两种情况: 1、两节点分别在根结点的左右子树中,其最远距离为两节点分别到达根结点的路径长度之和; 2、两节点同时在根结点的同一个子树上,设此时两个节点的最小祖先节点为p,此时这个最远距离位于树的以p为根结点的子树中,则其最远距离为两节点分别到达节点p...
2018-02-25 13:12:38 227
转载 java内部类详解
转载自 http://www.cnblogs.com/dolphin0520/p/3811445.html 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲: 一.内部类基础 二.深入理解内部类 三.内部类的使...
2018-02-25 13:11:49 138
原创 Thinking In Java读书笔记
Ch7 类的复用(组合和继承) 1)组合语法 2)继承语法 3)代理 4)组合继承结合使用 5)如何选择 6)protected 7)向上转型 8)final 9)初始化和类的加载 背景描述: 复用代码是java众多引人注目的功能之一。C这类过程型语言是怎样复用代码的:通过复制代码并对之加以改变。 而在java中,所有问题的解决都是围绕着类展开的。可以通过创建新类来复用代码...
2018-02-18 22:32:44 145
原创 justForFun一篇没意义的博客
foo、foobar和fun 纳闷了很久编程语言的示例程序里类名、方法名、变量名,为什么都喜欢叫Foo,终于查了下发现是这样的: 说法一:来自中国“福“字的发音。(??福这个字有这么神秘嘛 说法二:二战时期的一种武器。(嗯哼? 说法三:foo是fu的变体,而fu又是fucked-up的缩写,意思呢差不多就是去他妈的;(哈哈哈这个解释我喜欢 又有另一个神奇的缩写词bar(Beyond al
2018-01-29 11:15:52 402
原创 git整理——廖雪峰教程笔记
·首先git是一个版本控制工具,它提供的好处在于:1、保存了你的每一次历史改动;2、便于协作编辑。 ·git诞生与Linus!这个人真的是很厉害了。他嫌弃svn等集中式的开源版本控制工具,又不想用商业的系统,BitKeeper作为一个商业的分布式版本控制系统曾经授权linux社区免费使用,结果因为不安分的社区成员试图破解BitMover的协议被发现而被收回了使用权。一夜回到人工管理版本控制的解放
2018-01-27 20:43:08 207
原创 待整理备忘
最近待整理: 1、动态规划解决n个村庄修p个邮局的问题(修1个邮局的版本是修在中位数上) 2、整理求2n个数的中位数的算法 要求时间复杂度O(logn) 分治法 3、整理数据挖掘算法 聚类分类 4、算法作业做选做题(第二次、第三次) 5、树有关的存储、遍历算法
2017-12-25 20:25:45 173
原创 哈密顿回路及解法
哈密顿回路: 1、指一个对图的每个顶点都只穿越一次的回路。也可以 定义为n+1个相邻顶点v0, v1, … ,vn, v0的一个序列,其中序列的第一个顶点和最后一个顶点是相同的,而其他n-1个顶点是互不相同的。 2、当这个图是加权图时,求该图的最短哈密顿回路,就是传说中的旅行商问题(TSP)。使用蛮力法求解: 1、首先规定作为起止点的顶点。由于回路是无向的,因此起止点可直接任选; 2、规定中
2017-12-24 15:11:59 23146 1
原创 分配问题与匈牙利法
分配问题: 已知成本矩阵,求最优分配方案。 成本矩阵:行列分别为worker和task,元素值为对应worker完成对应task的开销。 现只研究task数=worker数,且每个任务能且只能分配给一个人的情况。也就是说有效的方案的成本总和是从成本矩阵中取出n个既不同行又不同列的元素求和得到的。 解决算法: 1、蛮力:穷举法。对于n*n矩阵,要计算n!个成本值,时间复杂度O(n!) 2、
2017-12-23 21:45:26 1724 1
原创 分类算法——决策树
决策树: 非叶节点表示根据属性判断,分枝表示判断结果流向,叶节点表示分类结果(类标号)主要流程: 1)选择在这一层用哪个属性作分类属性(这里的选择标准就是属性选择度量) 2)根据1)在当前节点进行数据的分类 3)按上两个步骤做下去,直到到达叶节点问题细节: 何时到达叶节点、叶节点的节点值怎么确定: 1、如果流到这个分枝的所有数据都已经属于同一个类了,那么这就是个叶节点,节点值就是这个类的
2017-12-16 21:21:45 348
原创 分类算法——朴素贝叶斯
分类算法: 使用训练集(数据元组+对应类标号),选用某种分类算法进行监督学习,得到一个分类器;再使用和训练集没有重合的检验集来使用分类器分类,检验分类器的准确率。如果准确率可以接受,那这个分类器就可以用啦。朴素贝叶斯分类法: 用途:给定一个元组,可以计算出这个元组应被分到某个类的概率。 原理:利用贝叶斯公式算出以给定元组矢量值为条件,在训练集上计算出现类i的概率,能使这个条件概率取最大值的类i
2017-12-16 20:59:59 537
原创 挖掘算法系列大纲
上学期学了数据挖掘,对一些经典的算法有了一定的了解,想把这些算法的思想、自己的理解、使用每个算法的一个代码实践完成和整理一下,完成一个自己的挖掘算法系列笔记。这些算法分别属于:频繁项集的发现、分类、聚类、离群点检测。另外挖掘流式数据、推荐系统这两个附加课题也有一些经典的算法需要整理。数据挖掘领域除重要算法之外还有一些统计相关的概念问题,如果有时间也可以复习整理一下。 【算法大纲】 频繁项集的发现
2017-12-16 19:24:00 257
原创 【大白话版】求最大和子数组的动态规划算法
题目:求连续子数组的最大和 要求:时间复杂度O(n) 算法思路: 基于动态规划的思想: 1、算法中维护两个最大和:全局最大和max、局部最大和sum 2、全局最大和的维护:当局部>全局时,更新全局,将其赋值为局部值 3、局部最大和的维护:若当前局部<0,则新的最大和将不包含前面累积的最大和(因为前面的累积 对于 得到最大和 起的是负作用),那么新的最大和将是下一个元素本身。若当前局部>=
2017-12-14 14:20:24 498
原创 算法设计与分析基础_学习笔记
前言 本书围绕算法设计技术来组织章节。以便于: 一、在解决新问题时,我们可以运用这些技术设计出新的算法,提高学生的问题求解能力; 二、便于学生按照算法的内在设计方法对已知地众多算法进行分类,从而了解如何发掘不同应用领域的算法间的共性; 三、算法设计技术作为问题求解的一般性策略,在解决计算机领域以外的问题时,也能发挥相当大的作用。如何使用本书: 第二章介绍分析算法效率(从递归和非递归两个角度
2017-12-04 21:51:55 1442
原创 双系统/虚拟机安装实践记录
目标一:系统搭建 目标二:使用spark进行数据处理 系统搭建步骤: 1、安装HDFS ·下载Hadoop:http://hadoop.apache.org/releases.html ·配置Hadoop集群:http://hadoop.apache.org/docs/r3.0.0- alpha4/hadoop-project-dist/hadoop-common/ClusterSetu
2017-10-07 16:12:43 479
原创 MSE复试_数据库知识点整理
知识点提纲:第二章:关系模型的基本概念与基本理论 2.1 数据库的基本概念 ··数据库,数据库管理系统(DBMS - database management system),数据模型(data model) 2.2 关系模型的基本概念 ··数据结构:二维表(table/relation),属性(column/attribute),元组(row/tuple),表头(table heading)
2017-01-10 20:00:23 380
原创 UML整理-未完待续
统一建模语言(Unified Modeling Language, UML)一组用于描述和设计软件的图形表示法,通常用于面向对象设计领域。 UML常见的9中图: 用例图:描述系统的功能。 类图:描述系统的静态结构(类及其相互关系)。 对象图:描述系统在某个时刻的静态结构(对象及其相互关系)。 顺序图:按时间顺序描述系统元素之间的交互。 协作图:按照时间和空间的顺序描述系统间的交互和他们之
2017-01-05 15:44:47 228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人