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
算法导论2.3-7
字符串匹配之RK算法——学习笔记
RK算法是Rabin-Karp算法的简称,是经典的字符串匹配算法,在《
算法导论
》上是有介绍的,有兴趣的同学可以去看看。
jjwwwww
·
2020-08-01 12:44
基础算法学习
《
算法导论
》读书笔记
关于阅读《
算法导论
》的一些建议:不必纠结于数学的证明,例如递归表达式的时间复杂度计算;把一些当前重要的知识点(比如从第一部分到动态规划、贪心算法,高级数据结构B树那里)先
ReentrantSucc
·
2020-08-01 12:05
朴素字符串匹配——
算法导论
序字符串T=abcabaabaadac,字符串P=abaa,判断P是否是T的子串,就是字符串匹配问题了,T叫做文本(Text),P叫做模式(Pattern).算法思想朴素的字符串匹配过程可以形象的看成一个包含模式的“模板”P沿文本T移动,同时对每个位移注意模板上的字符是否与文本中的相应字符相等。外层循环的次数最多为len(s)-len(p),内层循环的次数最多为len(p).最坏情况下的时间复杂度
iteye_21199
·
2020-08-01 12:24
Java实现
算法导论
中朴素字符串匹配算法
朴素字符串匹配算法沿着主串滑动子串来循环匹配,算法时间性能是O((n-m+1)m),n是主串长度,m是字串长度,结合
算法导论
中来理解,具体代码参考:packagecn.ansj;publicclassNavieStringMatcher
fjssharpsword
·
2020-08-01 12:23
Algorithm
Java
算法导论专栏
全套字符串匹配算法
就算是
算法导论
上面,也只是除了以上两种方法外还有两种RK算法和有限自动机算法。这里对其他比较流行的算法进行一一的介绍一.BF算法首先是BF算法。
diaopan1958
·
2020-08-01 12:32
算法——字符串匹配之朴素算法
算法实现根据该算法的描述,这里给出
算法导论
中的伪代码,并根据伪代码给出具体实现代码,从代码中很清晰地看到该算法的时间复杂度。注:字符下标
逆风微积分
·
2020-08-01 11:11
数据结构与算法
数据结构与算法分析
字符串匹配 -- 朴素字符串匹配算法
朴素字符串匹配算法参考资料1
算法导论
朴素字符串匹配它用一个循环来找出所有有效位移,该循环对n-m+1个可能的每一个s值检查条件P[1..m]=T[s+1..s+m]。
麦兜NC粉
·
2020-08-01 11:15
字符串匹配
算法
算法导论
习题解答 4.1-2
4.1-2证明T(n)=2T(⌊n/2⌋)+n的解为O(nlgn)。证明这个递归的解也是Ω(nlgn),得到的解为Θ(nlgn)。证明:(1)假设T(⌊n/2⌋)=1,则有(1)=c⌊n/2⌋lg(⌊n/2⌋)。则有:T(n)>=2(c⌊n/2⌋lg(⌊n/2⌋))+n>=c(n-1)lg(n/4)+n=cnlgn-clgn-cnlg4+clg4+n(1)若c足够小,有(1)>=cnlgn,所以T
IndiaPrince
·
2020-08-01 10:38
算法导论习题解答
面试题精选(77):两有序数组的中位数求解
eachcontainingnnumbersalreadyinsortedorder.GiveanO(lgn)-timealgorithmtofindthemedianofall2nelementsinarraysXandY.题目是《
算法导论
yysdsyl
·
2020-08-01 08:53
(OpenCV)函数cv::partition解析
思想:该算法为《
算法导论
》(IntroductiontoAlgorythms)中Datastructuresfordisjointsets章节描述的不相交集的实现,算法思想见博文
沤江一流
·
2020-08-01 06:22
算法导论
专题开篇
《
算法导论
》(ISBN978-7-111-40701-0)这本书是我一个同事给推荐的,奈何当时确实是没有时间,虽神往之,却只能望洋兴叹。
_onePiece
·
2020-08-01 05:53
算法导论
-数据结构的扩张
算法导论
书上给出的是红黑树的一种扩张-动态顺序统计。将容量为n的随机样本的各个测定值(x1,x2,……,xn),从小到大顺序的排列,xi所在的顺序位置就是它的顺序统计量。
weixin_34192993
·
2020-08-01 04:02
《
算法导论
》读书笔记之第9章 中位数和顺序统计学
摘要:本章所讨论的问题是在一个由n个不同数值构成的集合中选择第i个顺序统计量问题。主要讲的内容是如何在线性时间内O(n)时间内在集合S中选择第i小的元素,最基本的是选择集合的最大值和最小值。一般情况下选择的元素是随机的,最大值和最小值是特殊情况,书中重点介绍了如何采用分治算法来实现选择第i小的元素,并借助中位数进行优化处理,保证最坏保证运行时间是线性的O(n)。1、基本概念顺序统计量:在一个由n个
weixin_34138377
·
2020-08-01 04:12
NOIP2019复习(学习)计划
(争取回校前ak)拓展网课普及:随便看看提高:$1/10$书(大致(再)看一遍)《一本通提高篇》《挑战程序设计竞赛》《入门经典》《习题与解答》《进阶指南》《训练指南》《数学一本通》《一本通高手训练》《
算法导论
weixin_30386713
·
2020-08-01 03:25
135、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为 "cad"
abccade","dgcadde"的最大子串为"cad"/*35、编程实现:找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"不同于56的最长公共子串DP题
算法导论
上有
小人物_cipher
·
2020-08-01 02:56
面试杂七杂八
《
算法导论
》读书笔记--堆排序
预备知识:堆通常被看做一个近似完全的二叉树,使用数组A[1...N]表示堆,数组中一个元素代表堆上一个结点,堆存在以下性质:根节点:A[1]父结点:Parent[i]=i/2左子节点:Left[i]=2i右子节点:Right[i]=2i+1数组长度为:A.length数组中有效数据长度为:A.heap-size堆分为最大堆和最小堆,在最大堆中Parent[i]>=A[i],在最小堆中Parent[
刚入行的小白
·
2020-08-01 01:59
算法
从B树中删除关键字
《
算法导论
》练习18.3-2:请写出B-TREE-DELETE的伪代码。与插入情况相对称,除了根结点外(根结点个数不能少于1),B树的关键字数不能少于t-1个。
swordmanwk
·
2020-08-01 00:13
算法
《
算法导论
》第2章总结
《
算法导论
》第2章总结第2章算法基础本章主要通过引入插入排序算法来介绍“伪代码”,并学习分析运行时间,学习分治法及其相关应用。本章共有1个重点,已加粗并加下划线。
sprinting_victor
·
2020-08-01 00:36
《算法导论》总结
算法导论
《
算法导论
》第1章总结
《
算法导论
》第1章总结第1章算法在计算中的作用本章以基础定义及关于算法的评价性文字为主,辅以较多的实例,可略读,可重点画出一下几条:1.1←算法algorithm就是任何良定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出
sprinting_victor
·
2020-08-01 00:36
《算法导论》总结
HDU 2010
今天只刷了一道题目,并不是说不想刷了,只是想留一点时间去看一下mit
算法导论
课程,总共有23集,准备花一个多月的时间去看完这部经典的视频,我也买了配套这个视频的书本,很厚。
菜鸟辉的奋斗史
·
2020-08-01 00:44
入门题
算法导论
系列:贪心算法(1)
周末开始着手算法这一系列文章,说起写这一系列的初衷是发现网上很多的同学们在学习算法这个时候,会遇到很多困难,而学校书中讲的道理尽管很对,但是总是太过于晦涩,正确的知识总是晦涩,这点没错,但让晦涩的知识变得有趣岂不是也很有意思?回想起自己学习算法的过程中,遇到了不少的坑坑.特想写一些文章去记录下自己过程中的所思说想,也借这些文章自己复习学习一下.这系列文章主要包括几个大类的算法,包括贪心算法,分治法
云时之间
·
2020-07-31 23:32
算法导论
第二章:算法入门
本章介绍了一个贯穿本书的框架,后续章节的算法设计和分析都是在这个框架中进行的。首先分析了一下如何用插入排序来解决排序问题,定义了一种“伪代码”来描述算法。在描述了算法后,再证明他能正确的完成任务,并对运行时间进行分析。引入一种记号,侧重于表达运行时间是如何随着待排序的数据项数而增加的。之后还要介绍算法设计中的“分治法”,并利用该方法来设计一个称为合并排序的算法,对合并算法的运行时间进行了分析。插入
longhuihu
·
2020-07-31 19:30
《算法导论》
《
算法导论
》第9章:顺序统计、中值
本章主要解决的问题:求数列中第i小的元素一、排序+下标定位【最坏情况Θ(n*lgn)】二、随机化分治算法【平均情况Θ(n)】算法步骤1.随机选择主元2.线性时间内以主元划分为两部分,左半部分小于主元,右半部分大于主元。设主元的下标为k。3.根据情况选择:ifk==i:直接返回A[k]ifk>i:递归最半部分找第i小的数ifk#includeusingnamespacestd;intrandomiz
Salmon_lee
·
2020-07-31 19:32
算法导论
线性规划之单纯型算法
问题定义:问题定义比较复杂,建议看《
算法导论
》里的线性规划一章。
iteye_9380
·
2020-07-31 18:45
算法导论
基本数据结构
忙了几天来了吧,
算法导论
已经到第十章,以后会陆续讲课后习题和读书笔记写出来,后面的可能会比较详细一点。
中华丛迅
·
2020-07-31 18:20
算法导论读书笔记
算法导论
第六章之最大、最小堆
堆是很重要的一种数据结构,常常用在排序和优先队列的实现上,当然在C++STL中有优先队列的实现,但是者并不妨碍我们去学习他。堆其实是一种数组对象,也就是说他的数据全部都存储在数组中,它可以被视为一棵完全二叉树(不懂二叉树的请自行百度)。(二叉堆)堆有两种:最大堆和最小堆。最大堆通俗来讲,满足下面要求的完全二叉树为最大堆:除了根节点以外的每一个节点i,有:A[Parent]>=A[i]注:数组A[]
中华丛迅
·
2020-07-31 18:17
C++
算法导论读书笔记
单纯的输出一下今天的学的东西:不知有没有用,高级数据结构和图算法
今天学习了一下《
算法导论
》高级数据结构和图算法梳理一下今天说学,不知对大家有没有用1:斐波那契堆:这是一种最小堆,而且也是一种可合并堆,对于他的具体的结构我没有太是在意。
carry_bin
·
2020-07-31 16:51
HDU2037(简单贪心)
点击打开链接
算法导论
16.1#include#includeusingnamespacestd;structnode{ints,e;};boolcmp(nodea,nodeb){returna.e=flage
西风丶
·
2020-07-31 15:53
贪心
找出数组X和Y中所有2n个元素的中位数
算法导论
第三版,9.3-8算法:如果两个数组长度为1,选出较小的那个一个否则,取出两个数组的中位数。取有较大中位数的数组的低区和较低中位数数组的高区,组合成新的长度为n的数组。
吴海旭
·
2020-07-31 15:16
算法导论
数据结构和
算法导论
一、数据结构基本概念和术语数据:数据是对客观事物的符号表示。在计算机科学中其含义是指所有能够输入到计算机中并被计算机程序处理的符号集合。数值,声音,图像等都是数据。数据元素:数据元素是数据集合中的一个实体,是计算机程序中加工处理的基本单位。人类的数据元素就是一个人。数据项:一个数据元素可以由若干个数据项组成。比如人这样的数据元素,可以由眼、耳、口、鼻等数据项组成。数据对象:是具有相同性质的数据元素
yatesChiang
·
2020-07-31 15:50
数据结构和算法
数据结构与
算法导论
之入门简介
目前,计算机加工处理的对象由纯粹的数值发展到字符、表格和图像等各种具有一定结构的数据,这就给程序设计带来了一些新的问题。为了编写一个好的程序,必须分析待处理的对象的特征以及各处理对象之间存在的关系,这就是“数据结构”这门学科形成和发展的背景。“数据结构”作为一门独立的课程,在国外是从1968年才开始设立的。1、什么是数据结构?答:大量数据的组织方法。2、什么是算法分析?答:算法运行时间的估计。3、
成长Bar
·
2020-07-31 13:36
Data
Structures
and
Algorithm
【高级排序】之桶排序
注:时间复杂度实际为,再通过一些列化简后,可得到O(N)的时间复杂度,具体化简过程可详见《
算法导论
》。注:即使输入数据不服从均匀分布,桶排序也仍然可以在线性时间内完成。
justry_deng
·
2020-07-31 12:24
数据结构与算法
海量数据找中位数
腾讯一面问到了,用的
算法导论
中的Kth算法,期望时间复杂度为O(n)。后来想了想,万一数据多的来根本不能一次读入内存,这个时候该如何解决呢?
randyjiawenjie
·
2020-07-31 11:43
算法
《
算法导论
》9、三个线性时间排序(C++)
1、计数排序#include#includeusingnamespacestd;int*countingSort(int*A,intn,intk){int*B=newint[n];int*C=newint[k];for(inti=0;i=0;i--)B[(C[A[i]]--)-1]=A[i];delete[]C;returnB;}voidmain(){intn=10;//排序元素长度int*A=n
路人甲wttttt
·
2020-07-31 11:01
算法
算法导论
第三十一(31)章数论算法
31.1基础数论概念先简要回顾一下书中内容:整除性与约数:d|a表示为d整除a,存在整数k,使得a=kd若d≥0,则称d是a的约数。素数与合数:素数:如果能被平凡约数1和自身整除即为素数。合数:如果整数a>1且不是素数,则称之为合数。除法定理,余数和等模除法定理:对于任何整数a和任何正整数n,存在唯一整数q和r,满足0≤rb>0,且c=a+b,则cmoda=b.设cmoda=x,则存在整数k,则c
Flammable_ice
·
2020-07-31 11:29
《算法导论》
bfprt算法
关于枢纽元的选择,在
算法导论
或是MarkAllenW
赢在拼搏中
·
2020-07-30 23:18
IT面试
主方法求解递归式
阅读经典——《
算法导论
》04在算法分析中,我们通常会得到一个关于输入规模n的递归式,形式如下:(式4-1)T(n)=aT(n/b)+f(n)例如,归并排序递归式T(n)=2T(n/2)+cn,Strassen
金戈大王
·
2020-07-30 17:09
归并排序以及时间复杂度,稳定性分析
算法导论
中分冶策略定义:将原问题划分为n个规模较小,与原问题结构相似的子问题;递归解决这些子问题,然后再合并其结果,就得到原问题的解。
itqcyyl
·
2020-07-30 15:54
算法Java
日常记录:《
算法导论
》学习笔记之二
在《
算法导论
》中还提到了合并算法,该算法采用分治法(divide-and-conquer)的思想。
Mr_Avin
·
2020-07-30 14:11
算法与数据结构
算法的二三事
递归式求解的三种方法
下面介绍求解递归式的三种方法,以下方法参考《
算法导论
》,图片来自网络。1.主方法求解递归式一种求解大部分递归式的公式。简洁实用,有兴趣的同学可以自己去看
算法导论
上的证明,这里只列举结论。
l-jobs
·
2020-07-30 09:39
常用算法
用栈实现图的深度优先搜索Java实现
《
算法导论
》一书中给出的深度优搜索是使用递归方式实现的。相比较而言,用递归的方式实现必用非递归方式实现要好理解很多。但是一般而言所有的递归方式实现都可以用非递归方式实现来代替。
麦克斯韦的妖精
·
2020-07-30 08:03
Java
算法导论
深度优先搜索
DFS
非递归
栈
算法导论
最小割(uva1515-水塘)
事实上,这道题纠正了我对“割”的理解……关于割的讨论以下摘自
算法导论
流网
kinoud
·
2020-07-30 06:59
《
算法导论
》读书笔记--第1、2章课后题
第一章思考题1-1(运行时间的比较)确定时间t内求解的问题的最大规模。上面是网上提供的答案。注意点:1、最左边一列的是关于n的增长情况描述,值得记住的是这些增长的排列顺序,这是非常有用的,啊,数分学好了会很容易;2、注意1s内能处理的以n为增长量级的规模是10的6次方,记住这个结果可以推导出其他增长量级的处理规模;3、注意这里的lg指的是以2为底的对数函数。顺便做了一张lgn的增长图,感受一下:本
weixin_34391854
·
2020-07-30 03:21
算法导论
14-2习题解答 Josephus排列(约瑟夫环)
CLRS14-2Josephus问题的定义如下:假设n个人排成环形,且有以正整数m。a)假设m为整数。请描述一个O(n)时间的算法,使之对给定的整数n,输出(n,m)-Josephus排列。b)假设m不是个常数。请描述一个O(nlgn)时间的算法,使给定的整数n和m,输出(n,m)-Josephus排列。解答:a)首先,我们很容易想到用一个循环链表,即最后一个结点指向头结点的单链表。然后,选定一个
weixin_33739523
·
2020-07-30 03:47
算法导论
14-2 Josephus 排列
n个人排成环,并从1到n编号,给定正整数m,从第一个人开始报数,每次报到m的那个人出列,求人员出列的排列,称为(n,m)-Josephus排列a)假定m的常数,找出O(n)的算法完成(n,m)-Josephus排列最直观的方法,让这n个人组成环形队列,遍历m个结点才能出一个人,(n,m)-Josephus排列需要m*n次遍历,由于m为常数,故此算法为O(n)b)假定m不是常数,找出O(nlgn)的
wdq347
·
2020-07-30 02:01
算法导论相关
算法导论
思考题14-2 Josephus permutation 约瑟夫排列
约瑟夫问题的定义:假设n个人排成环形,且有一个正整数m。原始办法是非常直观的O(mn)算法。分析约瑟夫排列问题,首先可以坑定约瑟夫环的运算时间绝对大于等于O(n),这点毫无疑问。还有就是数据大小与约瑟夫序列毫无关系。只有序列的下标位置与约瑟夫排列有关。一个约瑟夫排列的产生取决于两个量,一个是总数n,另一个是m,也就是每次跳跃的数量。开始是第一个人m号出列,然后是2m号,但是约瑟夫排列还存在循环问题
KIRITO1111
·
2020-07-30 01:14
探索学习
Josephus 排列
《
算法导论
第三版》14-2P.202Josephus排列n个人排成环,并从1到n编号,给定正整数m,从第一个人开始报数,每次报到m的那个人出列,求人员出列的排列,称为(n,m)-Josephus排列1、
s_xq
·
2020-07-30 00:06
算法
算法导论
7.4-5
题目:当输入数据已经“几乎有序时”,插入排序很快,在实际应用中,我们可以利用这一特点来提高快速排序的速度。当对一个长度小于k的子数组调用快速排序时,让它不做任何排序就返回。当上一层的快速排序调用返回后,对整个数组运行插入排序完成排序过程。证明:这一排序算法的期望时间复杂度为O(nk+nlg(n/k)).解决方案:quicksort在递归到只有几个元素大小的数组时开始用插入排序的方法。改进的快速排序
Raise
·
2020-07-29 20:03
算法分析与设计
C++
算法导论
-10.顺序统计树与区间树习题
顺序统计树和区间树都是对红黑树的扩张:通过在节点添加字段完成其他的功能,如果该字段可以在$O(1)$时间内维护,就能够不影响红黑树本身操作效率渐进量级。顺序统计树顺序统计树是红黑树的扩展:在红黑树的每个节点额外维护一个域size,记录以该节点为根的子树中的总结点个数。顺序统计数具有这样的功能:在$O(\lgn)$时间内找到树中所有元素的第$i$个顺序量。以下是一棵顺序统计树:练习14.1-4写出一
dayuan5183
·
2020-07-29 18:27
【
算法导论
】中位数
一、选择法排序、冒泡排序、插入法排序二、快速排序、分治法排序、堆排序三、计数排序、基数排序、桶排序gtest介绍及测试用例如下:测试框架之GTestMIT《
算法导论
》下载:hereorhttp://download.csdn.net
ceofit
·
2020-07-29 17:56
C/C++
算法
上一页
21
22
23
24
25
26
27
28
下一页
按字母分类:
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
其他