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
拓扑排序和关键路径分析
肛了小一天的《离散数学》和《
算法导论
》,希望能深入浅出的说明这个本来就很简单的问题拓扑排序是一个比较神奇的东西。
fengyuzhicheng
·
2020-08-14 06:27
常见排序算法的基本原理、代码实现和时间复杂度分析
最近刚好在学习
算法导论
,所以在这里对常见的一些排序算法的基本原理、代码实现和时间复杂度分析做一些总结,也算是对自己知识的巩固。
Stoneplay26
·
2020-08-14 06:56
算法
算法导论
代码 第23章 最小生成树
第23章最小生成树22.2Kruskal算法和Prim算法22.2.1Kruskal算法#include#include#include#includetypedefstructgraph_type*graph;structedge{intu;intv;intw;};structgraph_node{intkey;intw;structgraph_node*next;};voidgraph_nod
MoXiaopeng
·
2020-08-14 01:52
通俗的讲讲求最大流的解法
这篇博客以非常教科书的方式讲了解法,请参考:浅谈求解最大流的方法更为权威您看参考:
算法导论
第三版P414题干下图图1中标出了每条有向公路最大流量,请问从S到T最大流量是().A.46B.47C.54D.77
silent狼
·
2020-08-14 00:12
算法
【
算法导论
-学习笔记】以线性时间增长的排序——计数排序
计数排序是一种能够达到运行时间能够线性时间θ(n)的排序算法。在排序算法里算是最快的算法之一,当然,他有很强烈的前提。下面开始介绍一下计数排序(CountingSort)。算法思想计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。这样可以用一个数组C[0..k]来记录待排序数组里元素的数量。当k=O(n)时,计数排序的运行时间为θ(n).注:关于C[0..k],用键值对
zgljl2012
·
2020-08-14 00:36
算法
ACM算法专栏
浅谈求解最大流的方法
主要参考:《
算法导论
》引言还是前几天参加的2014阿里巴巴春季校招(测试开发岗)笔试.有道选择题:图1中标出了每条有向公路最大流量,请问从S到T最大流量是().A.46B.47C.54D.77图1:流网络看到这一题的时候我非常懊悔
yiqingnian28
·
2020-08-13 23:14
算法
算法导论
(第三版)15.1-5(斐波那契数列问题)
今天
算法导论
看到了《动态规划》一节,以前习题我都是想一下,然后网上参考别人的答案,就过去了,可是第一节的答案偏偏找不到,无奈只好咬着头皮自己做了下,话不多说,上代码~~~~~~~~~~~~~~~~intmemorized_Fab_Loop
yangseaer
·
2020-08-13 23:36
算法导论
算法
动态规划
算法导论
逆序对
(原题见
算法导论
思考题2-4)题目:假设A[1…n]是一个有n个不同数的数组。
HAHAHA9999?
·
2020-08-13 18:32
算法入门
排序算法
贪心
很久没写博客了很惭愧贪心在《
算法导论
》上竟然排在动态规划后面贪心的基本思想:先把问题分成若干步骤,再在完成一个问题的每一步中,都选择局部最优解,最后导致全局最优解。
s223568907
·
2020-08-13 18:10
16-贪心/贪婪 算法 greedy algorithm
参考:《
算法导论
》第16章贪心算法:在对问题求解时,总是做出在当前看来是最好的选择。贪心算法的基本思路:1.建立数学模型来描述问题。2.把求解的问题分成若干个子问题。
小朋友不能没有奶喝
·
2020-08-13 17:10
数据结构与算法
C#经典算法实践,回顾往生,更是致敬《
算法导论
》
概述本系列博文将会向大家介绍本人在钻研《
算法导论
第3版》过程中的点点滴滴,并使用C#语言实现该书中所有的经典算法,附带相应的时间复杂度分析。
byteflying.com
·
2020-08-13 16:41
C#算法设计
C#LeetCode刷题,走进Google,走近人生
概述本系列博文将会向大家介绍本人在钻研《
算法导论
第3版》过程中的点点滴滴,并使用C#语言实现该书中所有的经典算法,附带相应的时间复杂度分析。
byteflying.com
·
2020-08-13 16:41
C#算法设计
跳跃表的分析与实现
之前在《
算法导论
公开课》中听过这一节。当时感觉这种结构和二叉树简直是殊途同归,但是一直没有亲自动手实现过。这次又遇到了,就来实现试试看。话说跳跃表和各种平衡树一样,都是用来加速查询的。
曾经的学渣
·
2020-08-13 16:00
算法实现
存储系统
漂亮打印问题与动规模型的建立
这是
算法导论
动态规划一章的课后思考题题目如下:由给定的n个英文单词组成一篇文章,每个单词的长度(字符个数)依次为l1,l2...要在一台打印机上将这段文章漂亮的打印出来.打印机每行最多可打印M个字符.这里说说的漂亮定义如下
petercsj
·
2020-08-13 16:55
c
算法
算法导论
10.2-8 用一个指针实现双链表
一、题目说明如何对每个元素仅用一个指针np[x](而不是两个指针next和prev)来实现双链表。假设所有指针值都是k位的整型数,且定义np[x]=next[x]XORprev[x],即next[x]和prev[x]的k位异或(NIL用0表示)。注意要说明访问表头所需的信息,以及如何实现在该表上的SEARCH、INSERT和DELETE操作。如何在O(1)时间内实现这样的表。二、思路np[x]=n
windmissing
·
2020-08-13 16:05
算法导论
动态规划之最长递增子序列问题(nlogn输出LIS)——Longest increasing subsequence(python3实现)
这是
算法导论
15.4-6上的一道题:问题描述:看到这个问题后有这样一种简单的解法.方法1:O(nlogn)排序+O(n2)LCS+去重(O(n))因为我之前写过一个求最长公共子序列(LCS)的DP算法,
liuxiang15
·
2020-08-13 15:04
作业
用一个单链表L实现一个栈 要求PUSH和POP操作的时间仍为O(1)
算法导论
10.2-2答案
#include#include#defineNULL0typedefstructStack*S1;typedefstructNode{intElement;Node*next;}Snode,*node;structStack{Snode*top;};S1InitStack(){S1s;s=(S1)malloc(sizeof(structStack));s->top=(node)malloc(si
1054512666
·
2020-08-13 15:21
算法导论答案
例题分享——最长公共子序列问题(LCS)
分析根据standFord《
算法导论
》课程的方法一共有3种办法暴力穷举法,这个不用说了都知道。动态递归,也就是利用递归思路,自上而下。从m->0。备忘表法,自下而上(自底向上)。从0->m。
litingcheng1126
·
2020-08-13 15:44
例题
四年今日
CS类的算法方面已有四年没学了,
算法导论
在Ipad里面缓存了三次,依
jie_guale
·
2020-08-13 14:49
感~
算法导论
学习笔记-第8章 线性时间排序
8.1排序算法时间的下界比较排序:thesortedordertheydetermineisbasedonlyoncomparisonsbetweentheinputelements.比较排序可以被抽象地视为决策树。定理8.1任意一个比较排序算法在最坏情况下,都需要做Ω(nlgn)次的比较。推论8.2堆排序和合并排序都是渐近最优的比较排序算法。8.2计数排序计数排序假设n个输入元素中的每一个都是介
gfeng_ict
·
2020-08-13 14:04
算法学习
算法导论
22.1图的表示 练习总结
22.1-1给定有向图的邻接链表,需要多长时间才能计算出每个结点的出度(发出的边的条数)?多长时间才能计算出每个结点的入度(进入的边的条数)?ANSWER:①出度:O(V+E),因为计算n个结点的链表长度为O(n),所以需要计算O(V)个链表长度时间为O(V+E)。②入度:O(V+E),同理。22.1-2给定一棵有7个结点的完全二叉树的邻接链表,请给出等价的邻接矩阵表示。这里假设结点的编号为从1~
funggor
·
2020-08-13 13:14
算法导论(第3版)
赌徒有10元,一次输赢1元,手头能到110元的概率
这是我前一些天看了
算法导论
,然后碰到的一个有意思的问题。我保证这是本人原创的东西。一道与赌博有关的概率问题假设甲有10元,乙有100元,他们丢一次硬币输赢1元。
bairongdong1
·
2020-08-13 13:01
重走算法导论
半小时写完替罪羊重构点分树做动态动态点分治之紫荆花之恋的wyy贴心指导
参考书:《算法艺术与信息学竞赛——刘汝佳》,《
算法导论
》,《具体数学》题库:bzoj
baben4194
·
2020-08-13 13:42
HDU1159最长公共子序列
这个题貌似是
算法导论
的原题不过本着能循环坚决不用递归的态度我认真地写了循环…关键其实就是一个转移方程如果两个字节一样,他就等于dp[a][b]=dp[a+1][b+1]+1;如果不一样就找两边最大的dp
NineFailure
·
2020-08-13 12:44
ACM练习
动态规划
【
算法导论
33】跳跃表(Skip list)原理与java实现
WiKiSkiplist是一个用于有序元素序列快速搜索的数据结构,由美国计算机科学家WilliamPugh发明于1989年。它的效率和红黑树以及AVL树不相上下,但实现起来比较容易。作者WilliamPugh是这样介绍Skiplist的:Skiplistsareaprobabilisticdatastructurethatseemlikelytosupplantbalancedtreesasthe
只想瞪你一眼~
·
2020-08-13 11:44
《算法导论》学习
跳跃表以及C++实现
首先为了方便,我大概在博友林子的博客基础上进行编辑,今天我将跳跃表实现了一下,
算法导论
公开课的那位年轻教授说他花了半个小时写好半个小时调试好,我的时间估计是他的4倍吧,只有结构实现看了这篇博客的插入代码
Diehard_Yin
·
2020-08-13 11:55
数据结构
算法导论
-求(Fibonacci)斐波那契数列算法对比
目录1、斐波那契数列(Fibonacci)介绍2、朴素递归算法(Naiverecursivealgorithm)3、朴素递归平方算法(Naiverecursivesquaring)4、自底向上算法(Bottom-up)5、递归平方算法(Recursivesquaring)6、完整代码(c++)7、参考资料内容1、斐波那契数列(Fibonacci)介绍Fibonacci数列应该也算是耳熟能详,它的递
weixin_30702887
·
2020-08-13 11:31
用单链表实现栈、队列 令插入删除节点的运行时间为O(1)
用单链表实现一个栈,要求PushPop的运行时间为O(1),来自《
算法导论
》习题10.2-2。
weixin_30457551
·
2020-08-13 11:56
一文彻底搞懂跳表的各种时间复杂度、适用场景以及实现原理
跳表是一种神奇的数据结构,因为几乎所有版本的大学本科教材上都没有跳表这种数据结构,而且神书《
算法导论
》、《算法第四版》这两本书中也没有介绍跳表。
fanru_bigdata
·
2020-08-13 10:12
数据结构与算法
比较排序和线性时间排序
《
算法导论
》3个元素的决策树举
liao_hb
·
2020-08-13 10:25
算法
LeetCode#53暨最大连续子序列和问题
说它有意思包含了几个方面的内容:首先,它的直观上的求解显而易见、非常容易,但是它的优化求解直到上世纪八十年代才被发现;其次,很多算法书籍(例如《
算法导论
》、《编程珠玑》,以及MarkAllenWeiss
白马负金羁
·
2020-08-13 10:57
数据结构与算法
堆及堆排序算法(
算法导论
)
堆是一种二叉树,分为最大堆和最小堆。最大堆:所有的父亲节点都大于等于其儿子节点,所以根节点最大;最小堆:所有的父亲节点都小于等于其儿子节点,所以根节点最小;在这里仅仅考虑最大堆。如图是一个最大堆:绿色数字为角标i,而圆圈里的数字为A[i]的值。堆的几个性质:A[i]的父亲节点是A[i/2],左儿子节点是A[2*i],右儿子节点是A[2*i+1];除了最底层外,该树是全满的;堆的建立与排序均为原址排
是丰兄啊
·
2020-08-12 17:08
排序算法
数据结构
算法导论
求树的“直径”以及所想到的
算法导论
22.2-7题:树T=(V,E)的直径(diameter)定义为max(u,v),亦即,树的直径是树中所有最短路径长度中的最大值。试写出计算树的直径的有效算法,并分析算法的运行时间。
gzxcyy
·
2020-08-12 16:12
c++
快速傅立叶变换(FFT)的C++实现与Matlab实验
但是要实现快速傅立叶变换却不需要弄懂那么多东西,看看《
算法导论
》里面的第30章“多项式与快速傅立叶变换”就可以了。
Rappy
·
2020-08-12 15:06
程序代码
算法
matlab
fft
c++
float
output
算法
算法导论
(Python版本)(第7章)
1.快速排序importrandomdefPARTION(A,p,r):x=A[r]i=p-1forjinrange(p,r):ifA[j]<=x:i+=1A[i],A[j]=A[j],A[i]A[i+1],A[r]=A[r],A[i+1]returni+1defQUICK_SORT(A,p,r):ifp
溜达侠
·
2020-08-12 11:09
算法导论
(Python版本)(第15章)
1.自顶向下递归实现动态规划(切钢条问题)'''p表示对应长度的钢条价格n表示可分割的总长度'''defCUT_ROD(p,n):ifn==0:return0q=float('-inf')foriinrange(n):q=max(q,p[i]+CUT_ROD(p,n-i-1))returnqp=[1,5,8,9,10,17,17,20,24,30]foriinrange(11):print(CUT
溜达侠
·
2020-08-12 11:09
算法导论
(Python版本)(第8章)
1.桶排序defINSERTION_SORT(A):forjinrange(1,len(A)):key=A[j]i=j-1whilei>=0andA[i]>key:A[i+1]=A[i]i-=1A[i+1]=keyreturnAdefBUCKET_SORT(A):n=len(A)B=[[]foriinrange(n)]foriinrange(n):B[int(A[i]*n)].append(A[i
溜达侠
·
2020-08-12 11:09
matlab练习程序(二值图像连通区域标记法,两步法)
两步法中第二步是比较麻烦的,其中用到了不相交集合的一些理论,尤其是不相交集合森林,我这里的find_set函数就是参考《
算法导论
》311页的算法写的。如果用c++写,也许需要自己构造数据结构。
greenapple_shan
·
2020-08-12 11:34
Computer
Vision
经典算法研究系列:四、教你通透彻底理解:BFS和DFS优先搜索算法
4、教你通透彻底理解:BFS和DFS优先搜索算法作者:July二零一一年一月一日---------------------------------本人参考:
算法导论
本人声明:个人原创,转载请注明出处。
dinongxu8804
·
2020-08-12 11:32
数据结构与算法
【
算法导论
】邻接矩阵存储的拓扑排序
在很多应用中,很多事情都是按照一定的次序来进行的,比如说起床穿衣时,不可能先穿鞋再穿袜子,但是穿袜子和穿裤子可以不分先后次序。这种按照一定顺序进行的活动,可以使用顶点表示活动,顶点之间的有向边表示活动间的先后关系,这种有向无回路图说明了活动的先后次序。当活动只能单个进行时,如果可以将图中的所有顶点排列成一个线性序列vi1,vi2,…,vin,并且这个序列同时满足关系:若从顶点vi到顶点vj存在一条
nineheaded_bird
·
2020-08-11 23:38
C/C++
算法
算法之道
算法导论
实验——贪心算法求解最小生成树问题
1.贪心算法求解最小生成树问题:要求:分别用c/c++实现prim算法和Kruskal算法求解一个网络的最小生成树;分析两种算法的时间复杂度和各自的特点2.代码://c实现prim算法源代码:#include#include#defineN100intp[N],key[N],tb[N][N];voidprim(intv,intn){inti,j;intmin;for(i=1;i0&&key[j]#
木子若鱼
·
2020-08-11 12:09
算法导论
C语言实现的优先级队列
昨日看了
算法导论
里讲解的堆排序和优先级队列,于是用C语言写了一个优先级队列的简单实现,该实现的最大特点是队列的元素类型是不确定的,可以对任意数据类型进行操作(甚至是自定义的结构体)。
novawl
·
2020-08-11 05:02
算法与数据结构
算法导论
Exercises 23.1
Exercises23.1-
算法导论
.英文第3版如有不足或疑问,欢迎指正.Exercises23.1-1Let(u,v)beaminimum-weightedgeinaconnectedgraphG.Showthat
ZinanJau
·
2020-08-11 02:18
Algorithm
算法导论
学习笔记 第6章 堆排序
在本章中介绍了另一种排序算法:堆排序(heapsort)。与归排序一样,但不同于插入排序的是,堆排序的时间复杂度式(Onlgn)。而与插入排序相同,但不同于归并排序的是,堆排序同样具有空间原址性(我理解的意思是可以实现就地排序):任何时候都只需要常数个额外的元素空间存储临时数据。因此,堆排序是集合了归并排序和插入排序两种排序算法有点的一种排序算法。堆的定义如下:堆是一个数组,它可以被看成一个近似的
智享AI
·
2020-08-11 02:06
算法
程序设计
模式匹配朴素算法习题
算法导论
P559
intIndex_for_CLRS(char*f,char*c){ints,fi,ci,lf,lc;s=0;lf=strlen(f);lc=strlen(c);for(fi=ci=0;s1?ci:1;//这里要注意答案有误fi=s;ci=0;}}if(s>lf-lc)return0;//出口1:位移超过了elsereturns+1;}32:1-2AssumeallthecharactersofPa
Sleepwalker2013
·
2020-08-11 01:06
算法导论
-二分查找
#Author:Liusw#查找问题importmath#nums是升序defsearchNum(nums,target):#先将数组nums进行排序#nums=insertionSort(nums,"asc")#print()result=Falsemiddle=math.floor((len(nums)-1)/2)ifnums[middle]==target:result=Trueelifnu
夜深静处
·
2020-08-11 01:49
算法导论
算法导论
复习总结
一、概述1.算法表述自然语言(ENGLISH)算法描述语言(Pseudo-code)计算机程序语言(C++,Java)硬件设计(DSP)2.算法一般特性**正确性:**对于符合输入类型的任意输入数据,都产生正确的输出**有效性:**每一步指令能够被有效的执行,并且规定了指令的执行效果,结果应该具有的数据类型,而且是可以预期的**确定性:**每一步之后都要有确定的下一步指令**有穷性:**有限步内结
yin__ren
·
2020-08-11 01:55
数据结构与算法篇
算法导论
-动态规划
动态规划算法动态规划(dynamicprogramming)是通过组合子问题来求解原问题的方法,它应用于解决子问题重叠的情况,即不同子问题具有公共的子问题。通常动态规划可以按照如下四个步骤进行设计:1.刻画一个最优解的结构特征;2.递归地定义最优解的值;3.计算最优解的值,通常采用自底向上的方法;4.利用计算出的信息构造一个最优解(按照要求,可有可无)。一、钢条切割问题自顶向下递归实现CUT-RO
How far is forever
·
2020-08-11 00:48
算法导论
大数素数判断及质因子分解
对于一个longlong范围或者更大的数,怎么快速判断一个数是不是素数,就要用到Miller_Rabin算法.立用a^(n-1)=1(modn)怎么来的就不解释了,有兴趣的同学可以看看
算法导论
P566有详细推导
EW_DUST
·
2020-08-10 20:27
数论
(
算法导论
4.1)
package最大子数组;importjava.util.Arrays;/**动态规划方法解决最大子数组问题**/publicclassSolution{publicstaticvoidmain(String[]args){//TODO自动生成的方法存根int[]arr=newint[]{13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4};int[]
舒酱酱酱酱酱
·
2020-08-10 19:17
算法导论
上一页
18
19
20
21
22
23
24
25
下一页
按字母分类:
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
其他