自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java-BIO

Java BIO概述IO流的分类文件流(节点流)缓冲流转换流标准输入& 输出流打印流数据流对象流随机存取文件流概述全程为 Block Input/Output(同步阻塞式输入/输出), 指的就是传统 IO, 是用于处理设备之间的数据传输. 如 读写文件, 网络通讯等数据的输入或输出操作是以流(Stream)的方式进行IO流的分类按照操作数据的单位: 字节流(8bit), 字符流(16bit)字节流: 非文本文件, 就是按照二进制形式进行读写操作. 如 .mp3,.avi,.r

2020-11-30 22:33:50 145

原创 Java-List& Set& Map

List& Set& MapArrayList / LinkedList / Vector特点及比较ArrayList特点:LinkedList特点:Vector特点:MapHashMap / LinkedHashMap / TreeMap / Hashtable / Properties特点及比较HashMap特点:LinkedHashMap特点:TreeMap特点:Hashtable特点:Properties特点:HashSet / LinkedHashSet / TreeSet特点及比

2020-11-23 21:02:44 129 1

原创 算法-马踏棋盘算法

马踏棋盘算法概述概述马踏棋盘算法也被称为骑士周游问题, 规则是将马随机放在国际象棋的6x6棋盘(board[05][05])的某个方格中, 马儿走棋规则(马走日字)进行移动, 且每个方格只进入一次, 走遍所有方格代码思路深度优先搜索(Depth First Search): 每当走到尽头未走完所有方格, 便会回退, 也就是会发生大量的回溯使用贪心算法(Greedy algorithm), 优化深度优先搜索时产生的回溯代码实现public class HorseChessbo

2020-11-14 19:49:05 562 1

原创 算法-最短路径算法(弗洛伊德算法 Floyd`s algorithm)

Floyd`s algorithm概述最短路径问题概述弗洛伊德算法(Floyd’s algorithm)也是最短路径算法, 用于计算图中各个顶点之间的最短路径. 与迪杰斯特拉算法(Dijkstra’s algorithm)不同的是, 迪杰斯特拉算法是指定某一个顶点到其它顶点的最短路径, 而弗洛伊德算法是每一个(所有)顶点到其它顶点的最短路径最短路径问题胜利乡有7个村庄(A,B,C,D,E,F,G)各个村庄的距离用边线权值来表示, 比如 A-B距离5公里计算出各个村庄到其它各个村庄的最

2020-11-13 19:17:47 791

原创 算法-最短路径算法(迪杰斯特拉算法 Dijkstra`s algorithm)

Dijkstra Algorithm概述最短路径问题概述迪杰斯特拉算法(Dijkstra Algorithm)是最短路径算法, 用于计算一个节点到其它节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想), 直到扩展到终点为止最短路径问题战争时期, 胜利乡有7个村庄(A,B,C,D,E,F,G), 现在有六个邮差, 从 G点出发, 需要分别把邮件分别送到 A,B,C,D,E,F,G六个村庄各个村庄的距离用边线权值来表示, 比如 A-B距离5公里计算出 G村庄到其

2020-11-12 20:22:07 325

原创 算法-最小生成树算法(克鲁斯卡尔算法 Kruskal`s algorithm)

Kruskal`s algorithm概述公交站问题概述克鲁斯卡尔算法(Kruskal`s algorithm)也是求最小生成树的算法, 也就是在包含 n个顶点的带权无向连通图中, 找出(n-1)条边的最小耗费生成树(Minimum Cost Spanning Tree), 简称 MST克鲁斯卡尔算法的时间复杂度为 O(eloge) e为网中的边数基本思想: 将所有的边, 按照权值从小到大进行排序, 并保证边的终点不构成回路(指每个边的终点不允许重合)公交站问题某城市有7个居民区(A,B,

2020-11-11 20:45:26 1255 2

原创 算法-最小生成树算法(普里姆算法 Prim`s algorithm)

Prim’s algorithm概述修路问题概述普里姆算法(Prim’s algorithm)是求出最小生成树的算法, 也就是在包含 n个顶点的带权无向连通图中, 找出(n-1)条边的最小耗费生成树(Minimum Cost Spanning Tree), 简称 MST普里姆算法的时间复杂度为: 邻接矩阵 O(v^2), 邻接表 O(elog2v) e为网中的边数修路问题有叫(A,B,C,D,E,F,G)的7个村庄, 现在需要将这7个村庄通过修路连通. 各个村庄的距离用边线权值来表示, 比如

2020-11-10 19:54:33 3566 1

原创 算法-贪心算法(Greedy algorithm)

Greedy Algorithm概述贪心算法最佳应用-集合覆盖两种方式概述贪心算法(Greedy Algorithm), 又称贪婪算法. 此算法对问题进行求解时, 在每一步选择中都采取最好或者最优(即最有利)的选择, 从而希望能够导致结果是最好或者最优的算法贪心算法最佳应用-集合覆盖假设有多个需付费的广播台, 及各个广播台有限制, 只能传递信号到部分区域. 问题: 如何选择最少的广播台, 让所有的地区都可以接收到广播信号广播台可覆盖地区K1北京, 上海, 天津K

2020-11-09 20:32:59 413

原创 算法-字符串匹配算法(暴力匹配算法& KMP算法)

Brute Force Match Algorithm& KMP Algorithm暴力匹配算法(Brute Force Match Algorithm)KMP算法(KMP Algorithm)暴力匹配算法(Brute Force Match Algorithm)从原文字符串 str1中匹配, 子字符串 str2如果当前字符匹配成功, 即 str1[i]==str2[j], 则 i++; j++; 继续匹配下一个字符如果当前字符匹配失败, 则 i=i-(j-1); j=0; 也就是每次

2020-11-08 17:58:17 221

原创 算法-分治算法& 动态规划算法

Divide and Conquer Algorithm& Dynamic Programming Algorithm分治算法概述分治步骤分治算法最佳实践-汉诺塔动态规划算法概述动态规划算法最佳实践-背包问题分治算法概述分治算法(Divide and Conquer Algorithm)是把一个复杂的问题分成多个小问题, 再继续分成更小的, 直到问题简单到很容易求解为止, 最后将各问题的解合并的算法分治步骤分治法在每一层递归上都有的三个步骤:分解: 将原问题分解为若干个规模较小,

2020-11-07 21:30:28 199

原创 数据结构-图

Graph概述2种表示方式两种访问策略由于线性表和树结构都局限于一个直接前驱和一个直接后继的关系, 无法表示多对多的关系. 此时通过图来实现概述图是一种数据结构, 其中节点可以有零个或多个相邻节点. 节点与节点之间的的连接称为边. 节点也可以称为顶点图的常用概念:顶点(Vertex)边(Edge)路径: 比如从 D->C的路径有2个(1) D->B->C(2) D->A->B-C无向图: 顶点之间的连接没有方向, 比如 A-B, 既可

2020-11-06 20:59:33 193

原创 数据结构-B树(六)

23 tree, 234 tree, B tree, B+tree, B*tree概述23树& 234树(23 tree& 234 tree)B+树(B+tree)B*树(B*tree)二叉树的问题是当数据量多时, 容易产生海量节点, 会直接引起树的高度变大, 导致整体性能下降. 此种情况的解决方案就是多路查找树, 简称多叉树概述B树(B tree, Balanced tree), 属于多叉树(节点的路径可能不止两个), 它通过重新组织节点, 降低树的高度, 且减少 I/O次数来

2020-11-05 20:42:37 329

原创 数据结构-平衡二叉树(五)

AVL Binary Tree概述实例代码当创建二叉树时添加的首个节点相对小于整个数列时, 会引起整个二叉树的左右节点不平衡, 严重影响查询速度. 此种情况的解决方案就是平衡二叉树概述平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree), 又被称为 AVL树, 可以保证查询效率较高平衡二叉树的常见实现有红黑树, AVL, 替罪羊树, Treap, 伸展树等* 特点: 一棵的左右两个子树的高度差的绝对值不超过1, 并且左右两个子树都是一棵平衡

2020-11-04 20:33:00 151

原创 数据结构-二叉排序树(四)

Binary Sort Tree概述概述二叉排序树(BST, Binary Sort Tree), 任何一个非叶子节点相比左子节点大, 相比右子节点小.* 如果值相同, 即可以放左或右子节点## 实例代码public class BinarySortTreeApp { public static void main(String[] args) { int[] arr = {7, 3, 10, 12, 5, 1, 9, 11, 13}; BinaryS

2020-11-03 20:16:07 113

原创 算法-赫夫曼编码

Huffman Coding简介3种编码原理代码实现简介赫夫曼编码是可变字长编码(VLC)的一种, 常用于数据文件压缩. 其压缩通常在20%~90%之间3种编码原理在通信领域中信息的处理方式定长编码:变长编码:* 变长编码的缺点是编码格式重叠无法避免, 即不能匹配重复的编码3) 赫夫曼编码:代码实现字符串解压缩public class HuffmanCodeApp { public static void main(String[] args)

2020-11-02 19:47:14 1294 1

原创 数据结构-赫夫曼树(三)

Huffman Tree|哈夫曼树|霍夫曼树概念概念路径和路径长度:路径: 从一个节点往下可以达到的子节点或子子节点之间的通路路径长度: 通路中分支的数目称之为路径长度. 根节点到指定节点的路径长度为 L层-1节点的权及带权路径长度:节点的权: 为每个节点定义字段赋予有着某种含义的数值带权路径长度: 从根节点到该节点之间的路径长度和该节点的权的乘积WPL(Weighted path length): 所有叶子节点的带权路径长度之和WPL = 132 + 72 + 82

2020-11-01 20:27:01 448 2

中文转拼音/中文转五笔/汉字转拼音/汉字转五笔 字典

Java 中文转拼音/中文转五笔/汉字转拼音/汉字转五笔 字典. 通过 https://blog.csdn.net/qcl108/article/details/100981774 提供的 Java代码使用.

2019-09-18

空空如也

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

TA关注的人

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