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
算法导论——python实践
算法导论
博客
http://www.cnblogs.com/Anker/archive/2013/01/28/2880581.html
svdalv
·
2020-09-16 05:48
《
算法导论
》笔记(序言)
我打算每一天阅读完《
算法导论
》的一章。虽然大一时学习过数据结构,而且学的还不错。但很多已经忘记了,故借此机会复习一下。
小轲轲
·
2020-09-16 05:08
算法导论
题目1*证明若f(n)和g(n)是单调递增的函数,则f(n)+g(n)和f(g(n))也是递增的函数。此外,若f(n)和g(n)是非负的,则f(n)g(n)是单调递增的证明:不妨假设n1,n2是在函数的定义域内,且n10即Tn2>Tn1所以Tn是单调递增的,也即是f(n)+g(n)是递增的;而f(g(n))的证法相同,就不再赘述假设变量m,n在函数定义域内,且m>n,因为递增,则f(m)>f(n)
Albert-5
·
2020-09-16 05:10
算法
使用栈来模拟递归过程
写完这两个算法的时候,看到了
算法导论
课后一题,讲的是将深度优先算法使用栈来模拟
bapijun
·
2020-09-16 04:31
编程语言
编程语言中的数据结构
计算机编程语言的数据结构C++的10种基本容器(是对
算法导论
中的标准实现)数据类型存储类型容器名称说明单值数组vector链表list树set,multiset哈希表unordered_set,unordered_multiset
shang-qd
·
2020-09-16 03:25
系统编程
算法导论
-计算时间复杂度主定理
参考:http://blog.chinaunix.net/uid-25267728-id-3802135.htmlhttp://www.cppblog.com/tanky-woo/archive/2011/04/12/144020.html
jerryzcx
·
2020-09-16 03:09
算法
九大排序算法
blog.csdn.net/xiazdong本文是http://blog.csdn.net/xiazdong/article/details/7304239的补充,当年看了《大话数据结构》总结的,但是现在看了《
算法导论
NMianB_b
·
2020-09-16 01:31
Algorithm
最大流问题:增广路径算法的比较
以下转载于:FordFulkerson算法求网络最大流(java)FordFulkerson算法3个核心的概念:残留网络、增广路径和流网络的割(详细介绍参考
算法导论
)所测试的网络结构图如图所示:第1次遍历在残留网络中找到
NMianB_b
·
2020-09-16 01:01
Algorithm
【
算法导论
】贪心算法之活动安排问题
对于许多最优化问题来说,采用动态规划来求解最优解有点大材小用了,只需要采用更简单有效的贪心算法就行了。贪心算法就是所做的每一步选择都是当前最佳的,通过局部最佳来寻求全局最佳解。就像砝码称重一样,总是优先选择大的砝码。贪心算法对大多数优化问题来说能产生最优解,但也不一定总是这样的。能用贪心算法解的典型问题包括活动选择问题、最小生成树、最短路径问题等等。下面我们来讨论活动活动选择问题:对于上面问题,贪
nineheaded_bird
·
2020-09-16 01:51
C/C++
算法
算法之道
快排算法
最近在看
算法导论
,第七章讲的是快排算法。
阿伯拉罕·冯·斯玛特
·
2020-09-16 00:23
算法导论
算法导论
快排算法
HuffMan编码树最优性证明分析及贪心算法安全性证明思路分析
本文主要是对
算法导论
16.3节赫尔夫曼编码相关证明的分析梳理;另外,本文总结分析了贪心算法安全性证明的思路;编写日期,2019/1/19,20日掌握
算法导论
day10【证明之HuffMan算法构造的树是最优的证明
彪悍的人生不需要解释哈
·
2020-09-16 00:02
算法导论100个证明分析
算法导论
-字符串匹配
编辑文本时,我们经常需要在文本中找到某串模式字符在整个文本中出现的位置,这个模式字符串即为用户查找输入的关键字,解决这个问题的算法为字符串匹配算法。当我们遇到这个问题,如何查找在文本中出现的模式呢?一:朴素字符串匹配我们假设存在两个游标i,j分别指向文本串与模式串的位置,那么有1:当匹配到T[i]==P[j],则i++,j++;2:当在匹配到某一位置时出现T[i]!=P[j]时,即匹配失败,此时i
小山岷
·
2020-09-15 23:53
算法
【
算法导论
】动态规划之最优二叉查找树
如果我们想写一个单词查询的软件的话,我们的目的就是让查询的总时间最短,我们首先想到用之前的二叉查找树。我们可以用红黑树或者其它的平衡二叉树来保证每个单词的搜索时间。但是每个单词出现的频率一般不同,因此我们希望把频率较大的单词放在离根比较近的地方,频率较小的放在离叶子较近的地方。而且,我们所要查询的单词词库中没有,这也值得考虑。由上文可知,ki表示单词,di表示不能查到的情况。由上面的例子可知,一棵
nineheaded_bird
·
2020-09-15 23:53
C/C++
算法
算法之道
减治法(三) 生成子集的减治算法及二进制码法
子集问题是指生成一个集合的全部子集(2^n个,包括空集和全集),今年实验室一个去高盛的同学在技术面中被问到了这个问题,另外记得还有一个快排的时间复杂度证明(这个更难,就算了,有时间去看看
算法导论
怎么证明的
dianlu7964
·
2020-09-15 22:00
c/c++
java
利用动态规划找出最长公共单调递增子序列
代码如下:/************************************************************************//*
算法导论
15.4-5*找出n个数的序列中最长的单调递增子序列
Flammable_ice
·
2020-09-15 18:11
《算法导论》
算法导论
第三版第15章课后答案15.4-2(python语言编写)
在重构最长公共子序列时,只利用表c,也就是用于保存各子问题的LCS长度,运行时间依然为O(m+n),以下为基于python语言编写的代码:defLCS_Length(X,Y):#输出最长公共子序列的长度以及记录最优解的构造过程m=len(X)-1n=len(Y)-1a=[[0]*(n+1)]*(m+1)b=[[None]*(n+1)]*(m+1)c=numpy.array(a)#c用于保存c[i,
xljhtq
·
2020-09-15 18:09
两字符串最长公共子序列--动态规划
首先碰到求两字符串最长公共连续子串的问题,然后想到原先做过的求两字符串最长公共子序列问题,所以又把
算法导论
上的解法看了一下。
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
机器学习算法与
Python实践
之(二)k近邻(KNN)
kNN进阶这里我们用kNN来分类一个大点的数据库,包括数据维度比较大和样本数比较多的数据库。这里我们用到一个手写数字的数据库,可以到这里下载。这个数据库包括数字0-9的手写体。每个数字大约有200个样本。每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下:数据库解压后有两个目录:目录trainingDigits
hackerboy01
·
2020-09-14 14:30
机器学习
从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
算法
算法导论
上一页
10
11
12
13
14
15
16
17
下一页
按字母分类:
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
其他