随笔分类 -  算法导论

摘要:本章将处理大整数。“大输入”通常指包含“大整数”的输入,而不是包含“很多整数“的输入。因此,我们利用输入所需的位数来度量输入的大小,而不仅仅是输入中整数的数目。 给定 k k k 个整数输入 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1​,a2​,⋯,an​,如 阅读全文
posted @ 2023-09-22 11:57 gengduc 阅读(73) 评论(0) 推荐(0) 编辑
摘要:一个5段图。 求一条从 s s s 到 t t t 的成本最小的路径。 多段图问题满足最优性原理。 证明:反证法。 设 s , ⋯ , V i p , ⋯ , V j q , ⋯ , t s,\cdots,V_{i_p},\cdots,V_{j_q},\cdots,t s,⋯,Vip​​,⋯,Vjq 阅读全文
posted @ 2023-07-05 16:47 gengduc 阅读(15) 评论(0) 推荐(0) 编辑
摘要:文章目录 《算法设计与分析》复习提纲1 引言(ch1)1.1 什么是算法及其特征1.2 问题实例和问题规模 2 算法初步(ch2)2.1 插入排序算法2.2 算法复杂度及其度量2.3 插入排序额最坏、最好和平均时间2.4 归并排序算法及其时间复杂度 3 函数增长率(ch3)3.1 O \Omicro 阅读全文
posted @ 2023-07-02 22:17 gengduc 阅读(470) 评论(0) 推荐(0) 编辑
摘要:1 方法概述 1.1 搜索算法介绍 穷举搜索(Exhaustive Search)盲目搜索(Blind or Brute-Force Search) 深度优先搜索(DFS)或回溯搜索(Backtracking)广度优先搜索(BFS)迭代加深搜索(Iterative Deepening)分支界限法(B 阅读全文
posted @ 2023-07-02 22:04 gengduc 阅读(33) 评论(0) 推荐(0) 编辑
摘要:字符串匹配算法在文本文件中查找模式、DNA序列搜寻、网络引擎搜索中都有应用。 字符串匹配问题的形式化定义:假设文本是一个长为 n n n 的数组 T [ 1.. n ] T[1..n] T[1..n],而模式是一个长度为 m m m 的数组 P [ 1.. m ] P[1..m] P[1..m],其 阅读全文
posted @ 2023-07-02 21:59 gengduc 阅读(82) 评论(0) 推荐(0) 编辑
摘要:34.1 引言 34.1.1 算法与计算模型的关系 非形式地说,算法是为实现某个任务而构造的简单指令集。这是一个非严格的算法定义。 1900年,Hilbert在巴黎举行的世界数学家大会上提出了23个数学问题,其中第10个问题是要设计一个算法来测试多项式是否有整数根,他没有用算法这个术语,而用这样一句 阅读全文
posted @ 2023-06-30 23:43 gengduc 阅读(103) 评论(0) 推荐(0) 编辑
摘要:对于无向图 G = ( V , E ) G=(V, E) G=(V,E),存在一个能够连接所有顶点的无环子集 T ⊆ E T \subseteq E T⊆E,由于 T T T 无环且连接所有顶点,因此 T T T 一定为一棵树,被称为生成树。无向图 G = ( V , E ) G=(V, E) G= 阅读全文
posted @ 2023-06-30 21:53 gengduc 阅读(48) 评论(0) 推荐(0) 编辑
摘要:二项树 二项树 B k B_k Bk​ 是一种递归定义的有序树。如下图所示,二项树 B 0 B_0 B0​ 只包含一个结点,二项树 B k B_k Bk​ 由两棵二项树 B k − 1 B_{k-1} Bk−1​ 连接而成:其中一棵树的根是另一棵树的根的最左孩子。 二项树 B k B_k Bk​ 的 阅读全文
posted @ 2023-06-30 20:16 gengduc 阅读(29) 评论(0) 推荐(0) 编辑
摘要:# 最近点对问题 **问题描述**:在 n2 个点的集合 Q 中寻找最近点对的问题,“最近”指的是欧几里得距离最小,即点 p1=(x1,y1)p2=(x2,y2) 之间的欧几里得距离 d=(x1x2)2+(y1y2)2 阅读全文
posted @ 2023-06-29 21:45 gengduc 阅读(416) 评论(0) 推荐(0) 编辑
摘要:本章将介绍图的表示和图的搜索。图的搜索指的是跟随图中的边来访问图中的每个结点。图搜索是整个图算法领域的核心。22.1介绍图的两种表示方法:邻接链表和邻接矩阵。22.2介绍广度优先搜索(BFS)。22.3介绍深度优搜索(DFS)。 # 22.1 图的表示 对于图 G=(V,E),有用两种标准表示 阅读全文
posted @ 2023-06-29 21:45 gengduc 阅读(139) 评论(0) 推荐(0) 编辑
摘要:21.1节描述不相交集合数据结构支持的各种操作,并给出一个简单的应用。21.2节使用一种简单链表结构来实现不相交集合。21.3节使用有根树来实现,使用树表示的运行时间理论上好于线性时间,然而对于所有的实际应用它确是线性的。 # 21.1 不相交集合的操作 一个**不相交集合数据结构**(disjoi 阅读全文
posted @ 2023-06-29 21:44 gengduc 阅读(84) 评论(0) 推荐(0) 编辑
摘要:本章主要涉及理论分析,感觉第3版讲的不是很好(也有可能是翻译的语句不通顺),这里搬运了知乎上的文章。 - https://zhuanlan.zhihu.com/p/536470404 - https://zhuanlan.zhihu.com/p/577232877 - https://zhuanla 阅读全文
posted @ 2023-06-29 21:44 gengduc 阅读(284) 评论(0) 推荐(0) 编辑
摘要:求解最优化问题时候通常要经过一串步骤,每一步都有多种选择。对于很多问题来说,用动态规划求最优解就是杀鸡用牛刀,可以使用更简单的算法。 **贪心算法**(greedy algorithm)在每一步都做出当时看起来是最佳的选择。也就是说,它综述做出局部最优的选择,希望通过局部最优解得到全局最优解。 ** 阅读全文
posted @ 2023-06-29 21:43 gengduc 阅读(173) 评论(0) 推荐(0) 编辑
摘要:**动态规划**(dynamic programming)的思想是**分治思想**和**解决冗余**。 - 与分治法相似的是 - 将原问题**分解为若干个子问题**,先求解子问题,然后从这些子问题的解得到原问题的解。 - 与分治法不同的是 - 经分解的子问题**往往不是相互独立的**。若用分治法来解 阅读全文
posted @ 2023-06-29 21:43 gengduc 阅读(133) 评论(0) 推荐(0) 编辑
摘要:本章讨论通过扩展红黑树构造出的两种数据结构。14.1节介绍一种支持一般动态集合上顺序统计操作的数据结构。通过这种数据结构,我们可以快速地找到一个集合中的第 i 小的数,或给出一个指定元素在集合的全序中的位置。14.2节抽象出数据结构的扩张过程,并给出一个简化红黑树扩张的定理。14.3节使用这个定 阅读全文
posted @ 2023-06-29 21:42 gengduc 阅读(196) 评论(0) 推荐(0) 编辑
摘要:第12章介绍了一棵高度为h的二叉搜索树,它可以支持任何一种基本动态集合操作,如`SEARCH`、`PREDECESSOR`、`SUCCESSOR`、`MINIMUM`、`MAXIMUM`、`INSERT`和`DELETE`等,其时间复杂度均为O(h)。因此,如果搜素树的高度较低 阅读全文
posted @ 2023-06-29 21:41 gengduc 阅读(144) 评论(0) 推荐(0) 编辑
摘要:一个包含 n 个元素的集合中的第 i 个**顺序统计量**指集合中的第 i 小的元素。**最小值**是第 1 个顺序统计量(i=1),**最大值**是第 n 个顺序统计量(i=n)。 9.1节将讨论从集合中找出最小值和最大值的问题。9.2节将分析一个实用的算法,它在 阅读全文
posted @ 2023-06-29 21:40 gengduc 阅读(43) 评论(0) 推荐(0) 编辑
摘要:# 7.1 快速排序的描述 对一个典型的子数组A[p..r]进行快速排序的三步分治过程: - **分解**:数组A[p..r]被划分为两个(可能为空)的子数组A[p..q1]A[q+1..r],使得A[p..q1]中的每一个元素都小于等于A[q],而$A[q+1..r] 阅读全文
posted @ 2023-06-29 21:39 gengduc 阅读(69) 评论(0) 推荐(0) 编辑
摘要:# 前言 此前我们已经学习了几种O(nlogn)的排序算法,这些排序算法都有一个有趣性质,在排序的最终结果中,各元素的次序依赖于它们之间的比较,我们将这类排序称为**比较排序(comparison sort)**。 8.1节将要证明**对包含n个元素的输入序列,在最坏情况 阅读全文
posted @ 2023-06-29 21:38 gengduc 阅读(30) 评论(0) 推荐(0) 编辑
摘要:# 6.1 堆及堆的性质 **(二叉)堆**可以看作完全二叉树,其存储结构通常是**数组**,表示堆的数组A中有两个重要属性:A.length表示数组元素的个数;A.heapsize表示有多少个堆元素在数组中,0A.heapsizeA.length。 ![Figu 阅读全文
posted @ 2023-06-29 21:37 gengduc 阅读(46) 评论(0) 推荐(0) 编辑

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