随笔分类 -  DataStructure ~ Algorithm

1
摘要:★₯₰☆ 电梯调度 "几种算法的简单思考..." ★₯₰☆ ★₯₰☆ ★₯₰☆ 阅读全文
posted @ 2020-03-16 22:31 万箭穿心,习惯就好。 阅读(194) 评论(0) 推荐(0)
摘要:在 "上文" 中了解到SHA和RSA,工作中恰好用到扩展应用:SHA256WithRSA,本文总结下学习过程,备忘の 再提供另外一种方法,实现Java版pem密钥和.Net版xml密钥相互转换的方法 密钥转换 准备:引入 "BouncyCastle.Crypto.dll" RSA密钥:Pem XML 阅读全文
posted @ 2019-09-24 19:34 万箭穿心,习惯就好。 阅读(9130) 评论(0) 推荐(2)
摘要:工作中刚好碰到相关的问题,借此机会学习字符串的相似度匹配。 参考 阅读全文
posted @ 2018-08-15 19:13 万箭穿心,习惯就好。 阅读(218) 评论(0) 推荐(0)
摘要:最近在做的项目,需要账户密码登录,采用 AES 加密算法,从认识到了解,以及后续的扩展学习。 首先,明确几个加解密的重要概念 密钥 在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥(私用密钥)与非对称密钥(公共密钥)。 密钥加密 发送和接收数据的双方,使用相同的或对称的密钥对明 阅读全文
posted @ 2018-01-24 15:11 万箭穿心,习惯就好。 阅读(1152) 评论(0) 推荐(1)
摘要:排序概述 选择排序 冒泡排序 插入排序 快速排序 归并排序 堆排序 参考: 阅读全文
posted @ 2016-11-26 00:18 万箭穿心,习惯就好。 阅读(115) 评论(0) 推荐(0)
摘要:查找概述 静态表查找:查找 顺序表查找 有序表查找:二分查找,插值查找,Fibonacci查找[0.618] <-- 分割点不同 索引查找:线性索引,树形索引,多级索引 稠密索引 分块索引:块间有序、块内无序,平均查找长度 sqrt(n)+1 ; 倒排索引:速度快,索引项(次关键码,记录号表),由属 阅读全文
posted @ 2016-11-26 00:11 万箭穿心,习惯就好。 阅读(162) 评论(0) 推荐(0)
摘要:平衡二叉树 红黑树 阅读全文
posted @ 2016-11-15 00:19 万箭穿心,习惯就好。 阅读(152) 评论(0) 推荐(0)
摘要:top K 问题 分治法(哈希/Trie树(公共前缀)) -> 最小堆(多线程) 重复数问题 位图法(空换时, O(n)时间) 排序问题 分治 [桶排序] 、位图法 参考: 阅读全文
posted @ 2016-10-22 13:31 万箭穿心,习惯就好。 阅读(267) 评论(0) 推荐(0)
摘要:Shallow Copy System.Object.MemberwiseClone();受保护的方法。 Deep Copy 实现 ICloneable 接口并重写 Clone() 方法: 下面总结了 深拷贝 的几种常用方法 其中,前4种方法类似,最后一种方法是通过反射实现深拷贝。 注意,类对象应该 阅读全文
posted @ 2016-10-18 22:49 万箭穿心,习惯就好。 阅读(148) 评论(0) 推荐(0)
摘要:知道这强大的玩意很久了,一直没用到就没看,趁目前学习 Java 中顺便学习之 … 初识 正则表达式是一个用于匹配字符串的模版,提供 查找、分割、提取、替换 等操作。 预定义的规则 Greedy数量词规则 其中,? 可以理解为非贪婪模式,只匹配第一次出现的地方。 功能与应用:实质是匹配 [1]. 匹配 阅读全文
posted @ 2016-06-01 23:29 万箭穿心,习惯就好。 阅读(249) 评论(0) 推荐(0)
摘要:1.Dijkstra算法基础: 算法过程比prim算法稍微多一点步骤,但思想确实巧妙也是贪心,目的是求某个源点到目的点的最短距离,总的来说dijkstra也就是求某个源点到目的点的最短路,求解的过程也就是求源点到整个图的最短,次短距,第三短距离等(这些距离都是源点到某个点的最短距离)。。。求出的每个 阅读全文
posted @ 2014-09-05 22:24 万箭穿心,习惯就好。 阅读(428) 评论(0) 推荐(0)
摘要:1.Kruskal算法 图的存贮采用边集数组或邻接矩阵,权值相等的边在数组中排列次序可任意,边较多的不很实用,浪费时间,适合稀疏图。 方法:将图中边按其权值由小到大的次序顺序选取,若选边后不形成回路,则保留作为一条边,若形成回路则除去.依次选够(n-1)条边,即得最小生成树.(n为顶点数)。 Kru 阅读全文
posted @ 2014-09-02 19:05 万箭穿心,习惯就好。 阅读(439) 评论(0) 推荐(0)
摘要:本问题中Tarjan算法不需要设置栈和dfn,low标号,而是设置了并查集。 通过一次dfs遍历即可找出所有节点对的lca。将这样一次读取所有查询,计算一次后返回所有查询lca的算法称为离线算法 涉及到在线算法和离线算法这两个概念的算法还有区域最值查询问题(RMQ问题)。 以下方法均可用于有向图【先 阅读全文
posted @ 2014-08-29 13:23 万箭穿心,习惯就好。 阅读(251) 评论(0) 推荐(0)
摘要:Tarjan或Kosaraju算法【对每个点归类belong】求出SCC之后,对num_scc个SCC重新建图,针对不同问题,考虑重边的问题。 阅读全文
posted @ 2014-08-28 18:13 万箭穿心,习惯就好。 阅读(263) 评论(0) 推荐(0)
摘要:一个有向图称为半连通(Semi-Connected),满足:对于图中任两点u,v,存在一条u到v的有向路径或者从v到u的有向路径。 若满足,则称G’是G的一个导出子图。 若G’是G的导出子图,且G’半连通,则称G’为G的半连通子图。若G’是G所有半连通子图中包含节点数最多的,则称G’是G的最大半连通 阅读全文
posted @ 2014-08-28 16:53 万箭穿心,习惯就好。 阅读(603) 评论(0) 推荐(0)
摘要:运用Tarjan算法,求解图的点/边双连通分量。 1、点双连通分量【块】 割点可以存在多个块中,每个块包含当前节点u,分量以边的形式输出比较有意义。 2、边双连通分量【缩点】 某一个点只能在一个“缩点”内,“缩点”时不包括当前节点u,分量以顶点的形式输出。 阅读全文
posted @ 2014-08-28 13:46 万箭穿心,习惯就好。 阅读(472) 评论(0) 推荐(0)
摘要:使用Tarjan算法求解图的割点和桥。 1、割点 主要的算法结构就是DFS,一个点是割点,当且仅当以下两种情况: (1)该节点是根节点,且有两棵以上的子树; (2)该节点的任一子节点,没有到该节点祖先的反向边(就是说如果没有这个割点,那么这个子节点和那个祖先之间不连通); 2、桥 Tarjan算法求 阅读全文
posted @ 2014-08-28 11:45 万箭穿心,习惯就好。 阅读(401) 评论(0) 推荐(0)
摘要:此处的链式与循环队列可以应用于BFS和树的层序遍历。下面是对其结构和基本操作的程序描述。 1、循环队列 解决循环队列的队空和队满的方法: [1].增加一个参数count,用来记录数组中当前元素的个数; [2].为避免队空和满两状态混淆,少用一个存储空间,也就是数组最后一个存数空间不用,(rear+1 阅读全文
posted @ 2014-08-28 10:10 万箭穿心,习惯就好。 阅读(452) 评论(0) 推荐(0)
摘要:1、基础知识 所需结构:原图、反向图(若在原图中存在vi到vj有向边,在反向图中就变为vj到vi的有向边)、标记数组(标记是否遍历过)、一个栈(或记录顶点离开时间的数组)。 算法描叙: 步骤1:对原图进行深度优先遍历,记录每个顶点的离开时间。 步骤2:选择具有最晚离开时间的顶点,对反向图进行深度优先 阅读全文
posted @ 2014-08-19 14:25 万箭穿心,习惯就好。 阅读(286) 评论(0) 推荐(0)
摘要:1、基础知识 在有向图G,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。 下图中,子图{1 阅读全文
posted @ 2014-08-19 11:37 万箭穿心,习惯就好。 阅读(276) 评论(0) 推荐(0)

1