摘要:
查找子字符串 Introduction 在长度为 N 的文本里寻找长度为 M 的模式(子串),典型情况是 N M。 这个应用就很广泛啦,在文本中寻找特定的模式(子串)是很常见的需求。 Brute Force 我们先来了解一下暴力查找。 就暴力地两个循环,查找文本的每个位置,最坏情况下需要近似 $MN 阅读全文
摘要:
单词查找树 和以字符串为键的排序算法类似,以字符串为键的符号表也有更加高效的实现,可以避免检测整个键。于是乎,先贴下我们要实现的 API: R way Tries 单词查找树(Tires),来自 retrieval,为和‘tree’区分,读作‘try’。 节点里存储字符而不是键。 每个节点有 R(字 阅读全文
摘要:
基数排序 Strings In Java Char Data Type C 语言中的字符数据类型占一个字节(8 比特),最多只能表示 256 个字符。支持 7 位的标准 ASCII(American Standard Code for Information Interchange,美国标准信息交换 阅读全文
摘要:
编程作业三 作业链接: "Baseball Elimination" & "Checklist" 我的代码: "BaseballElimination.java" 问题简介 这是一个最大流模型的实际应用问题:篮球淘汰赛,设想你现在知道如下的比赛信息: 每条记录包含了队伍编号,队伍名,获胜、失败、总剩 阅读全文
摘要:
最大流最小割 Introduction Mincut Problem 最小割问题,输入是带权有向图,有一个源点 s(source)和一个汇点 t(target),边的权重在这里称作容量(capacity),是个正数。 st cut(cut): 把图的点分成两个集合 A 和 B,源点 s 和汇点 t 阅读全文
摘要:
编程作业二 作业链接: "Seam Carving" & "Checklist" 我的代码: "SeamCarver.java" 问题简介 接缝裁剪(Seam carving),是一个可以针对照片内容做正确缩放的算法(由 Shai Avidan 和 Ariel Shamir 所发表)。概念上,这个算 阅读全文
摘要:
最短路径 APIs 带权有向图中的最短路径,这节讨论从源点(s)到图中其它点的最短路径(single source)。 Weighted Directed Edge API 需要新的数据类型来表示带权有向边。 Weighted Directed Edge:implementation 习惯上处理边 阅读全文
摘要:
最小生成树 Introduction 图的生成树是它的一棵含有其所有顶点的无环连通子图。一幅加权无向图的最小生成树(MST)是它的一棵权值(树中所有边的权值之和)最小的生成树。 Greedy Algorithm 假定图是连通的,且各个边有不同的权值,这样图就会存在唯一一棵最小生成树。 Cut Pro 阅读全文
摘要:
编程作业一 作业链接: "WordNet" & "Checklist" 我的代码: "WordNet.java" & "SAP.java" & "Outcast.java" 这是第二部分的编程作业,因为第二部分课程开始了,第一部分博客就先放放。 问题简介 WordNet 按字面意思就是单词网,它是一 阅读全文
摘要:
有向图 Introduction 就是边是有方向的,像单行道那样,也有很多典型的应用。 点的出度指从这个点发出的边的数目,入度是指向点的边数。当存在一条从点 v 到点 w 的路径时,称点 v 能够到达点 w ,但要注意这并不意味着点 w 可以到达点 v 。 Digraph API 先给出表示有向图的 阅读全文