君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理
  1057 随笔 :: 381 文章 :: 141 评论 :: 169万 阅读

07 2014 档案

摘要:前言本文翻译自TopCoder上的一篇文章:Dynamic Programming: From novice to advanced,并非严格逐字逐句翻译,其中加入了自己的一些理解。水平有限,还望指摘。前言_我们遇到的问题中,有很大一部分可以用动态规划(简称DP)来解。 解决这类问题可以很大地提升你... 阅读全文
posted @ 2014-07-24 22:50 刺猬的温驯 阅读(269) 评论(0) 推荐(0) 编辑

摘要:Heinz Kabutz 在上周举办了一次成功 JCrete 研讨会,我在会上参加了对一种新的 StampedLock (于JSR166中 引入) 进行的评审。StampedLock (邮戳锁) 旨在解决系统中共享资源的争用问题。在一个系统中,如果多个需要读写某一共享状态的程序并发访问这个共享对象时... 阅读全文
posted @ 2014-07-10 23:51 刺猬的温驯 阅读(370) 评论(0) 推荐(1) 编辑

摘要:快速排序被公认为是本世纪最重要的算法之一,这已经不是什么新闻了。对很多语言来说是实际系统排序,包括在Java中的Arrays.sort。那么快速排序有什么新进展呢?好吧,就像我刚才提到的那样(Java 7发布两年后)快速排序实现的Arrays.sort被双基准(dual-pivot)排序的一种变体取... 阅读全文
posted @ 2014-07-10 23:49 刺猬的温驯 阅读(938) 评论(0) 推荐(0) 编辑

摘要:我们已经知道了如何通过Dijkstra算法在非负权图中找到最短路径。即使图中有负权边,我们也知道通过Bellman-Ford算法找到一个从 给定的源点到其它所有节点的最短路径。现在我们将看到一个在线性时间内运行得更快的算法,它可以在有向无环图中找到从一个给定的源点到其它所有可达顶点的 最短路径,又名... 阅读全文
posted @ 2014-07-10 23:47 刺猬的温驯 阅读(3002) 评论(0) 推荐(0) 编辑

摘要:假设我们有一组任务要完成,并且有些任务要在其它任务完成之后才能开始,所以我们必须非常小心这些任务的执行顺序。如果这些任务的执行顺序足够简单的话,我们可以用链表来存储它们,这是一个很好的方案,让我们可以准确知道任务的执行顺序。问题是有时候不同任务之间的关系是非常复杂的,有些任务依赖于两个甚至更多的任务... 阅读全文
posted @ 2014-07-10 23:44 刺猬的温驯 阅读(504) 评论(0) 推荐(0) 编辑

摘要:拓扑排序虽是一种排序,但是它跟平时所接触的sort或者qsort不同,排序的意义不同。拓扑排序针对有向无回路图(DAG)而言的,不应用与存在回路的有向图。【图论】广度优先搜索和深度优先搜索 有说到了BFS和DFS,拓扑排序是DFS的一个应用。有向无回路图能说明事件的发生的先后的顺序。比如穿衣服,士兵... 阅读全文
posted @ 2014-07-09 13:02 刺猬的温驯 阅读(359) 评论(0) 推荐(1) 编辑

摘要:写在最前面的这篇文章并没有非常详细的算法证明过程。导论里面有非常详细的证明过程。本文只阐述“广度优先和深度优先搜索的思路以及一些简单应用”。两种图的遍历算法在其他图的算法当中都有应用,并且是基本的图论算法。广度优先搜索广度优先搜索(BFS),可以被形象的描述为“浅尝辄止”,具体一点就是每个顶点只访问... 阅读全文
posted @ 2014-07-09 13:01 刺猬的温驯 阅读(693) 评论(0) 推荐(0) 编辑

摘要:Prim算法1.概览普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (graph theory)),且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克(... 阅读全文
posted @ 2014-07-09 01:28 刺猬的温驯 阅读(485) 评论(0) 推荐(0) 编辑

摘要:Dijkstra算法1.定义概览Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法是很有代表性的最短路径算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论... 阅读全文
posted @ 2014-07-09 01:28 刺猬的温驯 阅读(502) 评论(0) 推荐(0) 编辑

摘要:关于三个简单的图论算法prim,dijkstra和kruskal三个图论的算法,初学者容易将他们搞混,所以放在一起了。prim和kruskal是最小生成树(MST)的算法,dijkstra是单源最短路径的算法。prim最小生成树prim算法采用了贪心策略:把点分成两个集合,A为已被处理(已经在最小生... 阅读全文
posted @ 2014-07-09 00:53 刺猬的温驯 阅读(452) 评论(0) 推荐(0) 编辑

摘要:假如你像用lucene来作分组,比如按类别分组,这种功能,好了你压力大了,lucene本身是不支持分组的。当你想要这个功能的时候,就可能会用到基于lucene的搜索引擎solr。不过也可以通过编码通过FieldCache和单字段,对索引进行分组,比如:想构造类别树。大类里面还有小类那种。这个功能实现... 阅读全文
posted @ 2014-07-07 22:00 刺猬的温驯 阅读(2162) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示