上一页 1 2 3 4 5 6 7 ··· 21 下一页
摘要: 给定有向图 G = (V, E),需要判断该图中是否存在环路(Cycle)。深度优先搜索(DFS:Depth-First Search)可以用于检测图中是否存在环。DFS 会对一个连通的图构造一颗树,如果在构造树的过程中出现反向边(Back Edge),则认为图中存在环路。对于非连通图,可以对图中的不同部分分别进行 DFS 构造树结构,对于每棵树分别检测反向边的存在。在 DFS 对图进行遍历时,将遍历过的顶点放入递归栈中,如果新遍历的顶点已经存在于递归栈中,则说明存在一个反向边,即存在一个环。 阅读全文
posted @ 2015-01-30 20:48 sangmado 阅读(15503) 评论(0) 推荐(0) 编辑
摘要: 深度优先搜索(DFS:Depth-First Search)是一种图搜索策略,其将搜索限制到 2 种操作:(a) 访问图中的一个节点;(b) 访问该节点的子节点。对图的深度优先搜索与对树(Tree)的深度优先遍历(Depth First Traversal)是类似的,区别在于图中可能存在环,所以可能会遍历到已经遍历的节点。 阅读全文
posted @ 2015-01-30 20:46 sangmado 阅读(4247) 评论(1) 推荐(3) 编辑
摘要: 广度优先搜索(BFS:Breadth-First Search)是一种图搜索策略,其将搜索限制到 2 种操作:(a) 访问图中的一个节点;(b) 访问该节点的邻居节点。广度优先搜索(BFS)由 Edward F. Moore 在 1950 年发表,起初被用于在迷宫中寻找最短路径。对图的广度优先搜索与对树(Tree)的广度优先遍历(Breadth First Traversal)是类似的,区别在于图中可能存在环,所以可能会遍历到已经遍历的节点。BFS 算法的实现通常使用队列(Queue)数据结构来存储遍历图中节点的中间状态。 阅读全文
posted @ 2015-01-30 20:45 sangmado 阅读(4468) 评论(0) 推荐(0) 编辑
摘要: 有一个小偷在偷窃一家商店时发现有 n 件物品,第 i 件物品价值 vi 元,重 wi 磅,此处 vi 和 wi 都是整数。小偷希望带走的物品价值越高越好,但他的背包至多只能装下 W 磅的东西,W 为整数。为尽可能多的带走更多的东西,小偷可以带走物品的一部分,而不必做出 0-1 的二分选择。那么,小偷应该带走哪些物品呢? 阅读全文
posted @ 2015-01-30 20:44 sangmado 阅读(2182) 评论(2) 推荐(0) 编辑
摘要: 本文汇编了一些常见的字符串算法,包括字符串反转算法、字符串左旋算法、字符串右旋算法、字符串旋转匹配算法、字符串包含算法、字符串删除算法、字符串转整数算法、字符串全排列算法、字符串字典序组合算法等。 阅读全文
posted @ 2015-01-30 20:43 sangmado 阅读(7329) 评论(0) 推荐(4) 编辑
摘要: Apache Thrift 是一种支持多种编程语言的远程服务调用框架,由 Facebook 于 2007 年开发,并于 2008 年进入 Apache 开源项目管理。Apache Thrift 通过 IDL 来定义 RPC 的接口和数据类型,然后通过代码生成工具来生成针对不同编程语言的代码,目前支持 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml, Delphi 等。本文将从 C# 开发人员角度介绍 Apache Thrift 的开发过程。 阅读全文
posted @ 2015-01-13 22:51 sangmado 阅读(4029) 评论(6) 推荐(4) 编辑
摘要: 说到数据格式化框架,就不得不提到 Google 的 Protocol Buffers,Facebook 的 Thrift,还有 Apache Hadoop 推出的 Avro。Microsoft 最近开源的 Bond 也是一种用于数据格式化的可扩展框架,其适用的应用场景包括服务间通信、大数据存储和处理等。为什么会有这么多关于数据格式处理的框架?它们都在解决什么问题呢?本篇文章从分析服务间通信所面对的问题开始,逐步描述设计数据格式化框架所需要解决的问题和应对方法,并介绍已有开源框架的结构和使用方法。 阅读全文
posted @ 2015-01-12 17:02 sangmado 阅读(8462) 评论(24) 推荐(50) 编辑
摘要: 什么?有个 SQL 执行了 8 秒?哪里出了问题?臣妾不知道啊,得找 DBA 啊。DBA 人呢?离职了!!擦!!!程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA"。本系列文章《人人都是 DBA》收集了许多常用的 SQL Server 数据库排错脚本,可协助排查各种配置问题、性能问题等。SQL Server 数据库的性能调优涉及到很多方面的知识,无法仅通过几个脚本来定位问题。这些脚本可以提供一些必要的线索和证据,结合业务应用类型、数据存取方式、网络拓扑结构、磁盘阵列性能、硬件能力等来判断需要优化的位置。 阅读全文
posted @ 2014-12-11 21:49 sangmado 阅读(2674) 评论(6) 推荐(3) 编辑
摘要: 什么?有个 SQL 执行了 8 秒?哪里出了问题?臣妾不知道啊,得找 DBA 啊。DBA 人呢?离职了!!擦!!!程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA"。本系列文章《人人都是 DBA》收集了许多常用的 SQL Server 数据库排错脚本,可协助排查各种配置问题、性能问题等。SQL Server 数据库的性能调优涉及到很多方面的知识,无法仅通过几个脚本来定位问题。这些脚本可以提供一些必要的线索和证据,结合业务应用类型、数据存取方式、网络拓扑结构、磁盘阵列性能、硬件能力等来判断需要优化的位置。 阅读全文
posted @ 2014-12-11 21:33 sangmado 阅读(4390) 评论(19) 推荐(20) 编辑
摘要: 什么?有个 SQL 执行了 8 秒?哪里出了问题?臣妾不知道啊,得找 DBA 啊。DBA 人呢?离职了!!擦!!!程序员在无处寻求帮助时,就得想办法自救,努力让自己变成 "伪 DBA"。本系列文章《人人都是 DBA》收集了许多常用的 SQL Server 数据库排错脚本,可协助排查各种配置问题、性能问题等。SQL Server 数据库的性能调优涉及到很多方面的知识,无法仅通过几个脚本来定位问题。这些脚本可以提供一些必要的线索和证据,结合业务应用类型、数据存取方式、网络拓扑结构、磁盘阵列性能、硬件能力等来判断需要优化的位置。 阅读全文
posted @ 2014-12-11 08:53 sangmado 阅读(1862) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 ··· 21 下一页