《算法》第六章部分程序 part 1】的更多相关文章

▶ 书中第六章部分程序,加上自己补充的代码,包括全局最小切分 Stoer-Wagner 算法,最小权值二分图匹配 ● 全局最小切分 Stoer-Wagner 算法 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.EdgeWeightedGraph; import edu.princeton.cs.algs…
▶ 书中第六章部分程序,包括在加上自己补充的代码,包括二分图最大匹配(最小顶点覆盖)的交替路径算法和 HopcroftKarp 算法 ● 二分图最大匹配(最小顶点覆盖)的交替路径算法 package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.BipartiteX; import edu.princeton.cs.algs4.Graph; import edu.princeton.c…
▶ 书中第六章部分程序,包括在加上自己补充的代码,网络最大流 Ford - Fulkerson 算法,以及用到的流量边类和剩余流量网络类 ● 网络最大流 Ford - Fulkerson 算法 package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.FlowEdge; import edu.princeton.cs.algs4.FlowNetwork; import edu.pr…
▶ 书中第六章部分程序,加上自己补充的代码,包括单纯形法求解线性规划问题 ● 单纯形法求解线性规划问题 // 表上作业法,I 为单位阵,y 为对偶变量,z 为目标函数值 // n m 1 // ┌───────────┬───────┬───┐ // │ │ │ │ // m │ A │ I │ b │ // a[m+1][n+m+1] = │ │ │ │ // ├───────────┼───────┼───┤ // 1 │ c │ y │ z │ // └───────────┴──────…
▶ 书中第六章部分程序,包括在加上自己补充的代码,利用后缀树查找最长重复子串.查找最大重复子串并输出其上下文(Key word in context,KWIC).求两字符串的最长公共子串 ● 利用后缀树查找最长重复子串 package package01; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.SuffixArrayX; pu…
▶ 书中第六章部分程序,包括在加上自己补充的代码,后缀树的两种实现 ● 后缀树实现一 package package01; import java.util.Arrays; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class class01 { private Suffix[] suffixes; // 后缀数组 public class01(String text) {…
▶ 书中第六章部分程序,包括在加上自己补充的代码,B-树 ● B-树 package package01; import edu.princeton.cs.algs4.StdOut; public class class01<Key extends Comparable<Key>, Value> { private static final int M = 4; // 子节点数量为 M-1 private Node root; // 根节点 private int height;…
▶ 书中第六章部分程序,包括在加上自己补充的代码,粒子碰撞系统及用到的粒子类 ● 粒子系统 package package01; import java.awt.Color; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdDraw; import edu.princeton.cs.algs4.MinPQ; import edu.princeton.cs.algs4.Particle; public cl…
▶ 书中第一章部分程序,加上自己补充的代码,包括若干种二分搜索,寻找图上连通分量数的两种算法 ● 代码,二分搜索 package package01; import java.util.Arrays; import edu.princeton.cs.algs4.StdRandom; public class class01 { public int binarySearch(int [] a, int target) // 非递归实现 { int lp = 0, rp = a.length -…
▶ 书中第二章部分程序,加上自己补充的代码,包括利用优先队列进行多路归并和堆排序 ● 利用优先队列进行多路归并 package package01; import edu.princeton.cs.algs4.IndexMinPQ; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; public class class01 { private class01() {} private static vo…
▶ 书中第二章部分程序,加上自己补充的代码,包括优先队列和索引优先队列 ● 优先队列 package package01; import java.util.Comparator; import java.util.Iterator; import java.util.NoSuchElementException; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class cla…
▶ 书中第二章部分程序,加上自己补充的代码,包括各种优化的快排 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdRandom; public class class01 { private class01() {} public static void sort1(Comparable[] a) /…
▶ 书中第二章部分程序,加上自己补充的代码,包括若干种归并排序,以及利用归并排序计算数组逆序数 ● 归并排序 package package01; import java.util.Comparator; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class class01 { private class01() {} private static void merge(Co…
▶ 书中第二章部分程序,加上自己补充的代码,包括插入排序,选择排序,Shell 排序 ● 插入排序 package package01; import java.util.Comparator; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; public class class01 { private class01() { } public static void sort(Comparab…
▶ 书中第一章部分程序,加上自己补充的代码,包括简单的计时器,链表背包迭代器,表达式计算相关 ● 简单的计时器,分别记录墙上时间和 CPU 时间. package package01; import java.lang.management.ThreadMXBean; import java.lang.management.ManagementFactory; public class class01 { private final ThreadMXBean threadTimer; // CP…
第十六章.程序管理与 SE Linux 初探 在 Linux 系统当中:"触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个 ID ,称为 PID,同时依据启发这个程序的使用者与相关属性关系,给予这个 PID 一组有效的权限设置." 从此以后,这个 PID 能够在系统上面进行的动作,就与这个 PID 的权限有关了! 1.1).进程与程序 l 程序 (program):通常为 binary program ,放置在储存媒体中 (如硬盘.光盘.软盘.磁带等), 为实体文…
▶ 书中第六章的程序,使用了条件判断和跳转来实现一些功能 ● 代码,查找数组首个非零值 INCLUDE Irvine32.inc .data intArray SWORD , , , , , , , -, , , ; 测试用的数组 ;intArray SWORD 1, 0, 0, 0 ;intArray SWORD 0, 0, 0, 0 ;intArray SWORD 0, 0, 0, 1 noneMsg BYTE .code main PROC mov ebx, OFFSET intArray…
第六章第一个linux个程序:统计单词个数 从本章就开始激动人心的时刻——实战,去慢慢揭开linux神秘的面纱.本章的实例是统计一片文章或者一段文字中的单词个数.  第 1 步:建立 Linu x 驱动骨架 (装载和卸载 Linu x 驱动) 第 2 步:注册和注销设备文件: 第 3 步z 指定与驱动相关的信息: 第 4 步=指定回调函数 : 第 5 步z 编写业务逻辑 : 第 6 步:编写 Makefile文件 : 第 7 步z 编译 Linux 驱动程序 : 第 8 步2 安装和卸载 Lin…
▶ 书中第四章部分程序,包括在加上自己补充的代码,有边权有向图的邻接矩阵,FloydWarshall 算法可能含负环的有边权有向图任意两点之间的最短路径 ● 有边权有向图的邻接矩阵 package package01; import java.util.Iterator; import java.util.NoSuchElementException; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdR…
▶ 书中第四章部分程序,包括在加上自己补充的代码,在有权有向图中寻找环,Bellman - Ford 算法求最短路径,套汇算法 ● 在有权有向图中寻找环 package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.StdRandom; import edu.princeton.cs.algs4.DirectedEdge; import edu.princeton.cs.algs4.E…
▶ 书中第四章部分程序,包括在加上自己补充的代码,Dijkstra 算法求有向 / 无向图最短路径,以及所有顶点对之间的最短路径 ● Dijkstra 算法求有向图最短路径 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.DirectedEdge; import edu.princeton.cs.algs…
▶ 书中第四章部分程序,包括在加上自己补充的代码,Kruskal 算法和 Boruvka 算法求最小生成树 ● Kruskal 算法求最小生成树 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Edge; import edu.princeton.cs.algs4.EdgeWeightedGraph; i…
▶ 书中第四章部分程序,包括在加上自己补充的代码,两种 Prim 算法求最小生成树 ● 简单 Prim 算法求最小生成树 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Edge; import edu.princeton.cs.algs4.EdgeWeightedGraph; import edu.pr…
▶ 书中第四章部分程序,包括在加上自己补充的代码,包括无向图连通分量,Kosaraju - Sharir 算法.Tarjan 算法.Gabow 算法计算有向图的强连通分量 ● 无向图连通分量 package package01; import edu.princeton.cs.algs4.In; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Graph; import edu.princeton.cs.al…
▶ 书中第四章部分程序,包括在加上自己补充的代码,两种拓扑排序的方法 ● 拓扑排序 1 package package01; import edu.princeton.cs.algs4.Digraph; import edu.princeton.cs.algs4.SymbolDigraph; import edu.princeton.cs.algs4.DirectedCycle; import edu.princeton.cs.algs4.DepthFirstOrder; import edu.…
前面已经学习了数组(列表).栈.队列和链表等顺序数据结构.这一章,我们要学习集合,这是一种不允许值重复的顺序数据结构. 本章可以学习到,如何添加和移除值,如何搜索值是否存在,也可以学习如何进行并集.交集.差集等数学操作,还可以学到如何使用ES6 原生的 Set类 第六章 集合 构建数据集合 集合是由一组无序且唯一(即不重复)的项组成的.这个数据结构使用了与有限集合相同的属性概念,但应用在计算机科学的数据结构中. 在数学中,集合时一组不同的对象(的集). 比如说,一个由大于或等于0 的整数组成的自…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(美国国旗排序) ● 美国国旗排序 package package01; import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Stack; public class class01 { private static final int BITS_PER_BYTE = 8;…
▶ 书中第五章部分程序,包括在加上自己补充的代码,适用于基因序列的 2-Bit 压缩算法,行程长压缩算法,Huffman 压缩算法,LZW 压缩算法 ● 适用于基因序列的 2-Bit 压缩算法 package package01; import edu.princeton.cs.algs4.BinaryStdIn; import edu.princeton.cs.algs4.BinaryStdOut import edu.princeton.cs.algs4.Alphabet; public c…
▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串的二进制表示.十六进制表示.图形表示 ● 二进制表示 package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.BinaryStdIn; public class class01 { private class01() {} public static void main(String[] args) { int bitPer…
▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; import edu.princeton.cs.algs4.StdOut; import edu.princeton.cs.algs4.Bag; import edu.princeton.cs.algs4.Stack; import edu.princeton.cs.algs4.Digraph; import…