E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
【算法导论】
两字符串最长公共子序列--动态规划
首先碰到求两字符串最长公共连续子串的问题,然后想到原先做过的求两字符串最长公共子序列问题,所以又把
算法导论
上的解法看了一下。
wly_2014
·
2020-09-15 18:42
算法
求一个数组的最长递增子序列(动态规划经典问题)
要求时间复杂度为O(n^2)(对应
算法导论
习题15.4-5)解答:这个算法和求最长递减子序列比较类似。
weixin_30471561
·
2020-09-15 18:21
数据结构与算法
《
算法导论
》-最大公共子串(连续) C语言版
1、最大公共子串与最大公共子序列最大公共子串是指两个序列连续的最大公共子序列,例如"efghi"和"eghib"的最大公共子串就是“ghi"采用DP的思想,如果str1[i]=str2[j],那么此处的包含str1[i]和str2[j]公共子串的长度必然是包含str1[i-1]和str2[j-1]的公共子串的长度加1,那么现在我们可以重新定义lcs(i,j),即是lcs(i,j)=lcs(i-1,
无知之路
·
2020-09-15 18:46
算法导论
算法导论
练习题 15.4-3
#include#include#includeintlcsLength(int**c,char*x,char*y,inti,intj){if(i=left)c[i][j]=up;elsec[i][j]=left;}returnc[i][j];}int**initC(char*x,char*y){intxlen=strlen(x);intylen=strlen(y);int**c=(int**)m
万万岁
·
2020-09-15 17:47
算法导论
算法导论
第十五章习题15.4-2
不适用数组b就能实现LCS结果的打印,代码如下://LCS#include#includeusingnamespacestd;//改进的LCS算法,不使用数组b便可打印出结果voidLCS_LengthC(stringx,stringy,int(*c)[100]){intm,n;m=x.length();n=x.length();inti,j;//如果i或j等于0则c[i][j]=0;for(i=
liuzhanchen1987
·
2020-09-15 17:13
算法导论
算法
string
c
《
算法导论
》笔记 第15章 15.4 最长公共子序列
【笔记】【练习】15.4-1确定和的一个LCS。10011015.4-2说明如何通过表c和原始序列X=与Y=,在O(m+n)时间内重构一个LCS。voidprintLcs2(intc[maxn][maxn],charx[],chary[],inti,intj){if(i==0||j==0)return;if(x[i]==y[j]){printLcs2(c,x,y,i-1,j-1);cout=c[i
cyendra
·
2020-09-15 17:02
算法导论
算法导论
第15章练习题 15.4-5
15.4-5设计一个O(n²)时间的算法,求一个n个数的序列的最长单调递增子序列。第一种:对序列进行排序,排序之后得到序列b与原来的序列a,求最长公共子串。(排序之前先将原来序列中的重复元素删掉(保证公共子串递增)b中无重复元素,a保持原来不变)第二种:deflongestIncreasingSubsequence(self,nums):#writeyourcodeherel=[0]*(len(n
六种鱼
·
2020-09-15 16:26
动态规划
《
算法导论
》动态规划—最长公共子序列(不连续)--c语言实现
1、基本概念一个给定序列的子序列就是该给定序列中去掉零个或者多个元素的序列。形式化来讲就是:给定一个序列X={x1,x2,……,xm},另外一个序列Z={z1、z2、……,zk},如果存在X的一个严格递增小标序列,使得对所有j=1,2,……k,有xij=zj,则Z是X的子序列。例如:Z={B,C,D,B}是X={A,B,C,B,D,A,B}的一个子序列,相应的小标为。从定义可以看出子序列直接的元素
无知之路
·
2020-09-15 16:25
算法导论
杭电 ACM 1007
《
算法导论
》上有详细讲解,王晓东的书上也有代码。主要思想就是分治。先把n个点按x坐标排序,然后求左边n/2个和右边n/2个的最近距离,最后合并。合并要重点说一下,比较麻烦。
冷冰若水
·
2020-09-15 16:08
ACM算法
杭电
ACM
一种求解卡塔兰数(Catalan Number)的非递归算法
在
算法导论
中的第15章有所涉及,根据书中的思想编写了如下算法:publicstaticintcatalanNumber(intn){int[]arr=newint[n+1];arr[1]=1;for(inti
taihejin
·
2020-09-15 15:42
算法
算法导论
-16.1-4 活动教室选择问题
题目:假设要用很多个教室对一组活动进行调剂。我们希望应用尽可能少的教室来调剂所有的活动。请给出一个有效的贪心算法,来断定哪一个活动应应用哪一个教室。(这个题目也被成为区间图着色(interval-graphcoloring)题目。我们可作出一个区间图,其顶点为已知的活动,其边连接着不兼容的活动。为使任两个相邻结点的色彩均不雷同,所需的起码色彩对应于找出调剂给定的所有活动所需的起码教室数。)思考:常
思翊
·
2020-09-15 08:55
数据结构和算法
算法导论
算法导论
的Java实现----2. 插入排序
1.插入排序一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下:⒈从第一个元素开始,该元素可以认为已经被排序⒉取出下一个元素,在已经排序的元素序列中从后向前扫描⒊如果该元素(已排序)大于新元素,将该元素移到下一位置⒋重复步骤3,直到找到已排序的元素小于或者等于新元素的位置⒌将新元素插入到下一位置中⒍重复步骤2~5如果比较操作的代价比交换操作大的话,可以采用二分查找法来减少比较操
沉默时光
·
2020-09-15 05:36
算法导论
插入排序
算法导论
算法导论
的Java实现----7. 快速排序
1.快速排序/**快速排序*/importjava.util.Comparator;publicclassQuickSort{publicstaticintpartition(T[]a,Comparatorc,intp,intr){Tt=a[r-1];inti=p-1;for(intj=p;jvoidquickSort(T[]a,Comparatorc){quickSort(a,c,0,a.len
沉默时光
·
2020-09-15 05:35
算法导论
B树 学习笔记3 - 从B树上中删除关键字
接上,
算法导论
-18.3从B树中删除关键字这一节没有给出伪代码,写起来怕是会有坑,放点参考:https://www.youtube.com/watch?
rsy56640
·
2020-09-15 05:16
传统算法入门学习
【动态规划】01背包和背包问题
还记得看过《
算法导论
》,这本书对于数据结构和算法讲解的较为深入。以后如果有空,还是希望能够再看一遍。补缺
茈桀
·
2020-09-15 04:28
算法
数据结构
【
算法导论
】多项式求和
一般情况下,一元n次多项式可写成:其中,pi是指数为ei的项的非零系数,且满足因此,我们可以采用线性表(定义:线性表是由n个数据元素构成的有限序列,比如数组、向量、链表等等)来表示:其中,每一项的指数i可以用其系数pi的序号表示。在通常的应用中,多项式的次数比较大,使得线性表的长度很难确定,因此我们可以考虑链表,向量也可以(c++中)。举例说明:假如我们用数组来表示下面的多项式:可见,我们需要一个
nineheaded_bird
·
2020-09-15 03:48
C/C++
算法
算法之道
算法导论
15.4-6题:O(nlgn)时间复杂度的算法求最长递增子序列
首先对题目的提示进行说明:一个长度为i的子序列的尾元素至少不比一个长度为i-1的候选子序列的尾又元素小,这里的“一个”不是任一个,而是存在至少一个。英文原版也说得不是很清楚:Thelastelementofacandidatesubseuqenceoflengthiisatleastaslargeasthelastelementofacandidatesubseuqenceoflengthi-1。
MasterWuzhi
·
2020-09-15 02:51
Notes
转自计算机学院一个offer大神的面经:潜心修炼,厚积薄发
1.先看书,后实践首先感谢一年前的自己所下的正确的决定:阅读《
算法导论
》《UNIX环境高级编程》《UNIX网络编程(卷一)》,那时还没想的这么远,只是觉得算法很重要,而我的基础又太薄弱,亟需重整。
sweetyspring
·
2020-09-15 01:05
排序算法总结
blog.csdn.net/xiazdong本文是http://blog.csdn.net/xiazdong/article/details/7304239的补充,当年看了《大话数据结构》总结的,但是现在看了《
算法导论
_三两天
·
2020-09-15 00:57
算法
排序算法
算法分析与设计复习
复习过程参照《
算法导论
》中文第2版,同时参照PPT,章节划分根据PPT内容概要:第一章概述第二章插入排序&分治策略第三章复杂度分析第四章堆与堆排序第五章快速排序第六章线性时间排序第七章中位数和顺序统计第八章动态规划
weixin_30612769
·
2020-09-14 23:06
数据结构与算法
我大二上第一个月的安排
算法题动态规划学习资料:力扣、acwing(mainly)数据结构栈、链表、二叉树学习资料:力扣(做题)、教材(代码实现,mainly)、
算法导论
数学计数原理学习资料:离散数学教材、《蓝书》、《红书》随机事件与分布学习资料
好喜欢萨摩猪
·
2020-09-14 21:12
其他
笔记;python基础之面向对象——继承:接口类&抽象类
一、接口类书本推荐:《设计模式》、《
算法导论
》设计模式——接口:来源于Java,总结了不同类型的开发模式.接口类:python原生不支持抽象类:python原生支持的fromabcimportabstractmethod
韩绮玲
·
2020-09-14 16:02
功能性
教你透彻了解红黑树
教你透彻了解红黑树作者:July、saturnman2010年12月29日本文参考:Google、
算法导论
、STL源码剖析、计算机程序设计艺术。
信念
·
2020-09-14 14:34
从DFA角度理解KMP算法
《
算法导论
》和其他地方在讲解KMP算法的时候,过于数学化且晦涩难懂,我也因此迷惑了很长时间。后来看《算法(第四版)》部分的讲解,对其中最复杂的Next数组有了重新的认识。我这里也希望用通俗的语言来
xddc
·
2020-09-14 08:11
Algorithm
B树的实现与源代码一
B树的定义假设B树的度为t(t>=2),则B树满足如下要求:(参考
算法导论
)(1)每个非根节点至少包含t-1个关键字,t个指向子节点的指针;至多包含2t-1个关键字,2t个指向子女的指针(叶子节点的子女为空
One-_-Piece
·
2020-09-14 06:00
C/C++
算法
算法导论
21-3 Tarjan的脱机最小公共祖先算法
题目最小公共祖先(LeastCommonAncestor)在一棵有根树T中,顶点x,y的最小公共祖先是x和y在通往根的路径上的第一个汇合点。如下图实例:顶点5和6的LCA就是2;顶点4和11的LCA是1;顶点10和12的LCA是10等等。如何求得任意一个顶点对的LCA呢?这需要结合第22章图的深度优先搜索和本章不相交集合数据结构的知识。根据题目,可知该算法的流程如下:1、对于顶点u,创建一个仅含它
bravepam
·
2020-09-14 05:30
算法和数据结构
算法导论
Tarjan
最小公共祖先
LCA
不相交数据集合
整数规划模型近似求解带权点覆盖问题
详细内容参考:《
算法导论
第二版-中文版》第644页内容一,基本介绍1,点覆盖问题属于NPC问题,目前还没有多项式时间算法精确地求解该问题。
weixin_33877092
·
2020-09-14 05:28
算法导论
笔记:21用于不相交集合的数据结构
在某些应用中,要将n个不同的元素分成一组不相交的集合。不相交集合上有两个重要操作,即找出给定的元素所属的集合和合并两个集合。一:不相交集合的操作不相交集合教据结构维护一组不相交的动态集合的集合S={S1,S2,...,SK}。每个集合通过一个代表来识别,代表是集合中的某个成员,在某些应用中,哪一个成员被选作代表是无所谓的,但是必须保证在两次寻找某一集合的代表两次,得到的答案应该是相同的。在另一些应
weixin_30772261
·
2020-09-14 04:46
简单理解拓展欧几里得
欧几里得算法所谓的欧几里得算法就是辗转相除法,作用是求两个数的最大公约数它其实用到的是一个定理:gcd(a,b)=gcd(b,amodb);gcd(a,b)=gcd(b,a\mod\b);gcd(a,b)=gcd(b,amodb);《
算法导论
sunmaoxiang
·
2020-09-14 04:51
数据结构(十二)——浅谈并查集
文章目录前言并查集并查集的优化初始结构优化合并按照重量规则合并按照高度规则合并优化查找路径压缩(pathcompression)综合优化前言这里没有路径压缩+按秩合并时证明反Ackermann函数的时间复杂度的内容,如有兴趣请查看《
算法导论
Ignorance__
·
2020-09-14 04:30
数据结构
算法
数据结构
算法导论
代码 第21章 用于不相交集合的数据结构
第21章用于不相交集合的数据结构21.2不相交集体的链表表示#include#include#includetypedefstructset_type*set;structset_node{void*key;structset_node*next;structset_node*representative;//指向代表的集合元素};structset_type{structset_node*hea
MoXiaopeng
·
2020-09-14 04:39
算法
数据结构
算法
struct
compression
null
path
算法导论
学习笔记-第二十一章-用于不相交集合的数据结构
第二十一章用于不相交集合的数据结构总结:这一章讲了并查集的相关概念,以及主要的MAKE-SET,UNION,FIND-SET操作,并给出了并查集的链表表示和森林表示方式。1.不相交集合上的操作不相交集合数据结构保持一组不相交的动态集合,每个集合通过一个代表来标识,代表即集合中的某个成员。一些操作:MAKE-SET(x):建立一个新的集合,其唯一成员为x。UNION(x,y):将包含x和y的动态集合
kindlucy
·
2020-09-14 04:51
算法学习
算法导论
习题解-第21章用于不相交集合的数据结构
习题编号以第3版为准#21-3Tarjan的脱机最小公共祖先算法解:(a)根据第7行和第9行,检查pair总是在其中一个节点被加黑的时候进行。对于{v1,v2},会在v1被加黑的时候检查一次,在v2被加黑的时候检查一次,对于先加黑的节点而言此时另一个节点尚未加黑,故第10行只会输出一次。(b)对于节点u,LCA(u)执行完毕时,以u为根的子树都在同一个集合里,而且全部被加黑,且u是最后一个被加黑的
groovy2007
·
2020-09-14 03:11
算法
算法导论
《
算法导论
》笔记 第21章 21.3 不相交集合森林
【笔记】用有根树来表示集合,树中的每个结点都包含集合的一个成员,每棵树表示一个集合。每个成员仅指向其父结点。每棵树的根包含了代表,并且是它自己的父结点。MAKE-SET创建一棵仅包含一个结点的树。FIND-SET找到树根。UNION使得一棵树根指向另一棵。改进运行时间的启发式策略按秩合并:使得包含较少结点的树的根指向包含较多结点的树的根。路径压缩:使查找路径上的每个结点都直接指向根结点。路径压缩并
cyendra
·
2020-09-14 03:31
算法导论
斐波那契堆
斐波那契堆作者:大树先生博客:http://blog.csdn.net/koala_treeGitHub:https://github.com/koalatree2017年09月13日自《
算法导论
》.斐波那契堆有两种用途
大树先生的博客
·
2020-09-13 21:32
算法
算法
斐波那契堆
算法导论
动态规划钢条切割问题 C语言
动态规划钢条切割问题动态规划(dynamicprogramming)与分治法类似。分治策略将问题划分为互不相交的子问题,递归求解子问题,再将子问题进行组合,求解原问题。动态规划应用于子问题重叠的情况,在这种情况下,分治法将会对重叠问题进行多次重复求解,而动态规划对每个子问题只求解一次动态规划方法常用于求解**最优化问题(optimizationproblem)**。这类问题可能有多个解,每个解有一
欢乐佛
·
2020-09-13 20:28
算法导论
并查集(DSU)
并查集的英文是DisjointSetUnion,因此又称(DSU)
算法导论
里的不相交集合的数据结构章节指的就是这个。
8rfuz
·
2020-09-13 19:32
算法
算法导论摘录
算法导论
读书笔记1
本人兴趣范范,各种东西喜欢捣鼓捣鼓,深知不深入一门技术无法立足于世,不过,广阔的兴趣也很好,至少对什么都保持一份3分钟的热度,但是还是需要持之以恒!自勉。第1章算法在计算中的作用(1)算法概念:即输入+定义良好的过程+输出=算法(2)练习答案:1.1-1:给出一个真实世界的例子,其中包含着下列的某种计算问题:排序,确定多矩阵的最佳顺序,或者找出凸壳。排序:其实排序的例子很简单,比如班级成绩的排序;
xizero00
·
2020-09-13 17:04
算法导论
算法导论
思考题12-1
12-1(带有相同关键字的二叉搜索树)相同关键字给二叉搜索树的实现带来了问题。a. 当用TREE-INSERT将nnn个其中带有相同关键字的数据插入到一棵初始为空的二叉搜索树中时,其渐进性能是多少?最坏情况下,所有关键字相同,那么将形成一个单链。时间复杂度为O(n2)O(n^2)O(n2)。 建议通过在第5行之前测试z.key=x.keyz.key=x.keyz.key=x.key和在11行之前测
007havegone
·
2020-09-13 16:03
算法导论
二叉树
算法导论
算法导论
思考题1-1
算法导论
-思考题1-11-1(运行时间的比较)假设求解问题的算法需要f(n)f(n)f(n)微秒(microseconds),对下表中每个函数f(n)f(n)f(n)和时间ttt可以确定在时间ttt内求解问题的最大规模
007havegone
·
2020-09-13 16:31
算法导论
算法导论
《编程之美》读书笔记(一):中国象棋将帅问题
题目不见得难,基本上给一本《
算法导论
》和足
kabini
·
2020-09-13 15:13
算法与实现
算法导论
读后感 之 快速傅立叶变换
快速傅氏变换(FFT),是离散傅氏变换的快速算法。主要利用的复数单位根具有的二分性质,即单位根的平方周期性减半的性质,实现了二分递归调用。wn的k次方的平方=wn的k+n/2次方的平方。然后利用多项式系数的奇偶性A(x)=A0(X^2)+X*A1(X^2)A1是奇数次项,A0是偶次项。时间复杂度nlogn
whwhzzz
·
2020-09-13 13:59
学习python编程的六本书
1)python编程:从入门到实践2)
算法导论
3)计算机网络4)深入了解计算机5)编译原理6)鸟哥的Linux私房菜基础版链接:https://pan.baidu.com/s/146WKDuQj71fHe83DBbKpNA
程序员大胖
·
2020-09-13 12:52
python书籍
自学python
算法导论
深入了解计算机
linux
【
算法导论
】动态规划之“最优二叉搜索树”
之前两篇分别讲了动态规划的“钢管切割”和“矩阵链乘法”,感觉到了这一篇,也可以算是收官之作了。其实根据前两篇,到这里,也可以进行一些总结的,我们可以找到一些规律性的东西。所谓动态规划,其实就是解决递归调用中,可能出现重复计算子问题,从而导致耗费大量时间,去做重复劳动的问题。解决思路就是,将重复做过的子问题的结果,先存起来,等之后再需要用到的时候,直接拿过来用,而不需要再去计算。但是这里还需要注意一
苦_咖啡
·
2020-09-13 11:01
算法
算法导论
算法导论
最优二叉搜索树
钢管切割
矩阵链乘法
动态规划
最优化问题的解法 - 动态规划
虽是读书笔记,但是如转载请注明出处http://segmentfault.com/blog/exploring/..拒绝伸手复制党以下是
算法导论
第15章的学习笔记动态规划常用于最优化问题。
weixin_33834075
·
2020-09-13 07:58
算法导论
读书笔记(未完成)
堆排序总览我想了想,还是结合书中的每一句话来解释一下他们的来龙去脉吧,首先堆排序的时间复杂度是O(nlgn),也就是我们所说的大O时间复杂度。为什么说是nlgn的时间复杂度呢?首先我们需要知道max-heapfify的时间复杂度是lgn,也就是我们通常所说的log2n,因为数据结构当中的堆本质上还二叉树。那么这个n从哪里来呢?每一次Max-heapify都是一个调整堆成为最大堆的过程,每一次只能调
weixin_34014555
·
2020-09-13 06:27
算法导论
15-6公司聚会计划Planning a company party
ProfessorStewartisconsultingforthepresidentofacorporationthatisplanningacompanyparty.Thecompanyhasahierarchicalstructure;thatis,thesupervisorrelationformsatreerootedatthepresident.Thepersonnelofficeha
WHJObject
·
2020-09-13 05:06
algorithm
learning
算法导论
15-6
这是我第一次真正意义上的完成动态规划问题.这个问题,并不难.按照各个步骤进行:1.最优子结构.2.重叠子问题.3.列出状态转移方程.4.写出递归式.5.构造最优解.最主要的,就是状态转移方程的那个步骤.一度让我黯然.好在,后来,自己从"状态转移"这四个字发现了,方法,至少是对于这个问题的方法.从上一个最优子结构出发,看看如何才能构成当前的最优子结构.这样,最终就会构造出原问题的最优解.之后,边界条
Golden_Shadow
·
2020-09-13 04:33
算法
散列表总结
如果要转载,需要注明出处:http://blog.csdn.net/xiazdong本文整理自《
算法导论
》第11章,由于本章有一些概率论知识,因此理解起来比较困难,但是一般只要记住结果即可。
iteye_21202
·
2020-09-13 01:37
Summary (1)
自己学习情况:c++primary关于面向对象部分,以及部分泛型编程,同时初略地翻了条《moreeffectiveC++》,算法部分:《
算法导论
》第08章线
bnuwenzi
·
2020-09-13 01:56
Summary
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他