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实践
[
算法导论
]计数排序
计数排序假设n个输入元素中的每一个元素都是在0到k区间的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为Θ(n)基本思想:对于每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放在它在输出数组中的位置上了。伪算法:CountingSort(A,B,k)letC[0..k]beanewarrayfori=0tok//初始化数组。另C中的元素都为0C[i]=0forj=
WinddyAkoky
·
2020-08-24 00:06
【
算法导论
】33.3:寻找凹包(Convex Hull)P:947
1.凹包的定义:将集合Q中所有点都包含的最小多边形,每个点或者在其边上或者在其内部。2.运用:计算二维空间中两个最远的两个点(比在是凹包的点)3.两种方法:(1)Graham‘sscan,采用栈S,首先寻找y点最低或者最左的点,然后排序极角:fori<-3tomdowhiletheangleformedbypointsNext-To-Top(S),Top(S),andpimakesanonleft
Baocai3000
·
2020-08-23 23:33
数据结构/算法
算法导论
【
算法导论
】c++实现计数排序
计数排序的基本思想为:对每一个输入的元素x,确定出小于x的元素的个数。有了这一信息,那么就可以把x直接放到相应的位置上。特点:1需要临时的存储空间,如果排序数据范围特别大时,空间开销很大。2适合于排序0-100以内的数据。3排序的时间复杂度为O(n)。#include#includeconstintsize=100;int*array_list;int*array_list_a;voidprint
李亚超
·
2020-08-23 23:42
C/C++
算法导论
算法导论
学习笔记——基数排序
/***基数排序:n个d位数进行排序,先从最低有效位进行,由于每位数字都界于0到9(只考虑整数),*可以用计数排序对每一位进行排序,重复这一过程直到对所有的d位数字都进行了排序。*由于计数排序的复杂度为O(n+k),所以基数排序的时间复杂度为O(d(n+k))*/publicclassRadixSort{/***用计数排序将arr数组按第i位排序*@paramarr要排序的数组*@parami第i
FG2006
·
2020-08-23 23:28
数据结构与算法
算法导论
例程——堆排序(大根堆为例)
堆排序是具有原址性的排序,复杂度为o(nlgn)。首先要建立一个“堆”的概念,堆可以理解为二叉树的一种,是节点间有序关系的完全二叉树,即除了最后一层外节点没有缺失,所以可以用数组来表示。对于下标为i的节点,它的子树的左节点的下标为2*i,右节点为2*i+1,父树的节点下标为i/2(向下取整)。而在程序设计中,使用位运算来代替直接*2可以提高运行速度。而某些编译器中会把一些特定的乘法运算改写为位运算
CFhM_R
·
2020-08-23 23:08
算法导论
《
算法导论
》读书笔记--计数排序&基数排序
计数排序是用空间换取时间的算法,其假设n个输入元素中的每一个都在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序的运行时间为Theta(n)。基本思想:对每一个输入元素x,确定小于x的元素个数。利用这一信息,就可以直接把x放到它在输出数组中的位置上了。输入数组为A[1..n]辅助数组:B[1..n]存放排序的输出,C[1..k]提供临时存储空间(存放A中数组元素值的出现次数)。伪代
刚入行的小白
·
2020-08-23 22:32
算法
算法导论
之第八章-基数排序
比计数排序优秀的点还在,计数排序要建立对象,如果数字过大,会导致建的数组过长而堆溢出/**Filename:Class9Jishupaixu.javaDescription:基数排序:和我们分类的思想很像,比如说高考成绩排序,我们先把400分以上归成一类,在排300-400的,排完后,排300-310分的…但是,基础排序是反过来,因为先排高位会导致再排较低位时高位顺序变了,所以,先排低位。和计数排
孤竹彧
·
2020-08-23 22:25
笔记
算法
[
算法导论
]基数排序
#include#include#include#defineLength10usingnamespacestd;voidCountSort(intnuma[],intlen,intrange,intd);//参数:带排序数组数组长度数组中元素从0到最大值的取值个数数组的位数voidRadixSort(intnum[],intlen,intd);//待排数组数组长度最大元素的位数voidOutp
Extreme_Programmer
·
2020-08-23 22:23
算法导论
算法导论
例程——基数排序
基数排序(radix_sort)可以被称为是计数排序的升级版,他的原理是基于以前的卡片式排序方法,这里把要排序的每个整数看作是一张卡片,把整数的各位数字看作是卡片上的关键字,在进行计数排序时,我们逐位扫描整数的各位数字,并以该数字为关键字进行整体的排序,从低位到高位,在排序时我们可以借助结构体进行辅助,基数排序本身提供思路,它使用的是较为稳定的技术排序作为核心的排序算法,这样保证算法时间复杂度为o
CFhM_R
·
2020-08-23 22:41
算法导论
JAVA总结(五)----- 容器(二)-----Set
注:以下概念与代码均参考自:《java编程思想》、《
算法导论
》、《EffectiveJava》、《数据结构和Java集合框架》目录一、为什么选择Set二、基于红黑树实现——TreeSet1、红黑树2、TreeSet
和樂
·
2020-08-23 21:45
红黑树
HashSet
TreeSet
散列表
JAVA总结(五)----- 容器(一)-----List
注:以下程序与概念均参考自《java编程思想》、《数据结构与java集合框架》、《
算法导论
》目录一、集合是什么二、基于数组实现的——ArrayList1、类标题2、类字段3、构造方法4、add()以及数组扩容
和樂
·
2020-08-23 21:45
《
算法导论
》读书笔记之第16章 0-1背包问题—动态规划求解
今天开始继续看
算法导论
。今天继续学习动态规划和贪心算法。首先简单的介绍一下动态规划与贪心算法的各自特点及其区别。然后针对0-1背包问题进行讨论。最后给出
weixin_34038293
·
2020-08-23 20:37
动态规划问题之求解数列中递增数列的长度
最近在准备面试,当然算法是必不可少的,但是自己平常做的更多的是工程方面的东西,涉及到的最多就是数据结构浅层的东西,还没有花很大的精力来研究算法,但是面试中算法肯定是不可缺少的,所以这几天一直在恶补算法,今天看
算法导论
时看到了动态规划算法
会敲代码的咩
·
2020-08-23 19:47
python
算法
SQLite3的基础学习以及
Python实践
读写db文件
Python集成自带的最精巧的数据库管理方案。基础命令行操作链接:https://pan.baidu.com/s/1hU1nYRSdm8K0JOeQZVMvJQ密码:2cyq为Xmind文件。这里的命令虽然全是大写,但是sqlite3并不区分大小写,都用小写也可以。python基础操作这里写了一个将Name这一个列表进行写入db文件的操作,首先创建,添加等。defMakeDbfile(self):
香道人
·
2020-08-23 18:49
python
算法导论
最长公共子序列(按自己思路写的)
#include#include#includeintgetlastPos(char*s,charc,intpos){intlen=strlen(s),i;for(i=pos-1;i>=0;i--){if(c==s[i])returni;}returni;}int**initM(char*x,char*y){intxlen=strlen(x);intylen=strlen(y);inti,j;//
万万岁
·
2020-08-23 17:18
算法导论
算法导论
:c++实现红黑树
数据结构性质这里定义一个结构体保存颜色enumcolorRB{black=0,red,};structTreeNode_RB{intval;colorRBcolor;TreeNode_RB*left;TreeNode_RB*right;TreeNode_RB*parent;TreeNode_RB(intx,colorRBc):val(x),left(NULL),right(NULL),parent
Imcy
·
2020-08-23 12:53
C++
算法导论
算法导论
:c++实现图
图的表示这里用结构体来表示图G,和图顶点GraphNode,后面要用到的顶点颜色用枚举类型表示enumcolor{white=0,gray,black};structgraphNode{charname;//顶点名structgraphNode*pre;//前驱节点intd;//深度colorc;//节点颜色graphNode(charn):name(n),pre(NULL),c(white),d
Imcy
·
2020-08-23 12:53
C++
算法导论
算法导论
:c++选择算法
选择算法即给定数组A,选出第i个大的元素,区别于排序后选择这种比较慢的方法,选择算法不需要排序即可选出第i个大元素基于随机快排选择算法首先实现随机快排:随机快排就是在快排的基础上主元用随机数产生。//随机快速排序之随机选择替代主元intrandom_partition(intarray[],intp,intr){inti=(rand()%(r-p+1))+p;//产生[p,r]之间的一个随机数ii
Imcy
·
2020-08-23 12:22
C++
算法导论
算法导论
-----排序的9种实现(C/C++)
目录A、冒泡排序B、选择排序C、插入排序D、折半插入排序E、归并排序F、快速排序G、希尔排序H、堆排序《
算法导论
》中并没有讨论这么多排序算法。在此罗列出来,仅仅是为了今后便于查看。
GNG
·
2020-08-23 11:36
算法导论
编程提高
《算法导论》笔记
如何有效地理解程序中的递归
写在前面最近在重新学习《
算法导论
》这本书,在看到介绍递归的时候,想起了当时学习算法时的痛苦,递归是一种让人有爱与恨的算法理念,之所以爱是因为其的使用思路很清晰且算法复杂度等接近最优,恨就是因为它的思想太过于抽象了
yourzeromax
·
2020-08-23 11:01
算法
用C++学《
算法导论
》——第一章:算法的认识
笔者简介:一名程序男,就读于某中流985高校计算机专业,目前大四,留研本校,3年编程经验。个人心声:学习编程几年了,但是这不是我一开始就确定道路,刚入学时只是个萌新,做过销售、发过传单、踩过楼层,碰壁多了,也明白自己适合的方向,大二开始才真正踏上编程之路。走过了不少弯路,然后才明白,你的编码能力是和发际线成正比的,嘿嘿嘿。大四了,本来是应该养老的生活(保研),但是自己却一直静不下心来,一时想学这个
晓晶
·
2020-08-23 11:44
用C++学《算法导论》
算法导论
(c++实现)chapter4
算法导论
的第四章——分治策略,主要的算法为寻找最大子数组问题,还有矩阵乘法的Strassen算法,还有一些课后的练习题,主要讲了求解递归式的三种方法:代入法(感觉像是猜测,然后用数学归纳法验证),递归树法
zhutou1280
·
2020-08-23 11:26
算法导论
算法导论
c++实现第一章
实现选择排序排序思想:无序数组序列用A[0...n]描述A中某个位置用pos描述,key=A[pos],算法思想是遍历数组A(从位置1开始),如果有A[pos-1]usingnamespacestd;/*实现思想遍历数组arr[1..n-1],将数据放置到arr[0]开头的数组内,组成的数据组是有序的arr[0]到arr[1]如果可以直接交换,能够实现从大到小的排序号的数组,当数据追加时可以将位置
johnsonchengwu
·
2020-08-23 10:50
学习笔记
2019年个人OKR
在读3本KR2:参加软考,获取架构师证书待办:购买参考教材待办:报名参考考试待办:学习网络/书本教程KR3:了解工程硕士的相关事宜,为2020年准备在读书单:Linux/UNIX系统编程手册(上/下册)
算法导论
chenglimie7017
·
2020-08-23 10:53
算法导论
B树的c++实现
算法导论
的课要完成一个小课题,选了B树,花了挺长时间弄完,之前写了几个简单的排序,发现这递归是真的牛批啊。代码部分参考了这位博主。在写前面的插入那一大块,书上有伪代码可以对着写。
andefine
·
2020-08-23 09:05
c++
【
算法导论
】用C++实现快速排序
本算法为【
算法导论
】7.1的C++实现,代码如下:#includevoidswap(int*a,int*b);intpartition(int*array_list,intleft,intright);
李亚超
·
2020-08-23 09:12
C/C++
重用代码之LinuxC&C++
算法导论
算法导论
快排实现(C++)
算法导论
的快排算法,#includeusingnamespacestd;inta[]={9};voidexchange(int&x,int&y){inttem=x;x=y;y=tem;}intpar(inta
东方花未开
·
2020-08-23 09:25
算法
算法导论
第三十(30)章多项式与快速傅里叶变换
由于在第三十一章数论算法中遇到几个关于超大数乘法的问题促使我需要学这章,具体请看第三十一章练习31.1-8,31.1-12与31.1-13.基本概念:大整数的加减乘除系数形式表示的多项式的快速乘法1.两个n次多项式a与b分别计算在2n次单位复数根下的对应多项式值。计算过程使用的是FFT。所以时间为O(nlgn)2.随后进行点值乘法,根据c(w0)=a(w0)*b(w0)在n次单位复数根下的对应的多
Flammable_ice
·
2020-08-23 08:59
《算法导论》
《
算法导论
》习题解答 Chapter 22.1-5(求平方图)
一、邻接矩阵实现思路:如果是邻接矩阵存储,设邻接矩阵为A,则A*A即为平方图,只需要矩阵相乘即可;伪代码:fori=1tonforj=1tonfork=1tonresult[i][j]+=matrix[i][k]*matrix[k][j];算法复杂度两个n维数组相乘,因此复杂度为O(V^3),当然可以通过Strassen算法稍加改进.扩展:这种方法的作用是比如求u到v路径长度为k的路径数目,只需要
weixin_30300225
·
2020-08-23 07:51
《
算法导论
》第四章-思考题(参考答案)
算法导论
(第三版)参考答案:思考题4.1,思考题4.2,思考题4.3,思考题4.4,思考题4.5,思考题4.6Problem4.1(Recurrenceexamples)GiveasymptoticupperandlowerboundforT
vikYao
·
2020-08-23 07:51
算法导论(第三版)
“学习笔记”之《
算法导论
》----第六部分----图算法----第二十六章----最大流
本人大四即将结束,于2018年12月18日购《
算法导论
》这本书,慢慢看,第一阶段先主要理解各个章节说的算法都是什么意思,书上的课后习题先不做,用得上什么算法我再详细学习。这是官方课后答案的链接。
Mr.Naruto
·
2020-08-23 06:22
算法导论
算法导论
:第15章 动态规划_1_2钢条切割_动态规划的两种解法
/*钢条切割:动态规划与分治的相同点:组合子问题求解原问题不同点:分治的子问题不重叠,做了重复工作,动态规划保存解到表中动态规划的特点:1最优子结构:问题的最优解由相关子问题的最优解组合而成,子问题可以独立求解动态规划的实现方式:1带备忘的自顶向下,2自底向上1带备忘的自顶向下:递归中保存子问题的解,需要子问题的解时,首先检查是否已经保存过此解,如果是直接返回保存的值2自底向上:定义子问题的规模,
天地一扁舟
·
2020-08-23 06:25
算法导论
算法导论
动态规划
钢条分割
贪心,深度优先(9)
就如《
算法导论
》里所说的:“人要活在当下”“看清楚眼前”……贪心算法正是“活在当下,看清楚眼前”的办法。
REXCPL
·
2020-08-23 06:40
C++
贪心
深度优先搜索
数模算法-图论算法
关于此类图论算法,可参考IntroductiontoAlgorithms–
算法导论
,关于图算法的第22章-第26章。
Dompink
·
2020-08-23 06:09
算法
多项式乘法 (快速傅里叶变换)
算法导论
里基本看懂了傅里叶变换的整个运行流程。后面剩下的就是如何规划设计程序,使得程序漂亮又高效,暂时没时间,先做个记录,后面慢慢实现。
8rfuz
·
2020-08-23 06:21
随记
算法导论
-单源最短路径-Dijkstra算法的实现
publicclassDijkstra{staticintM=10000;publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubint[][]weight1={{0,3,2000,7,M},{3,0,4,2,M},{M,4,0,5,4},{7,2,5,0,6},{M,M,4,6,0}};//有向图的矩阵表示,数值表示权重i
JKhere
·
2020-08-23 06:28
算法导论
&&
ACM
算法导论
26(最大流)
26.1流网络26.2Ford-Fulkerson方法Edmonds-Karp算法#include#includeusingnamespacestd;#definen20intf[n][n],cf[n][n],pred[n];boolvisited[n];typedefstruct{intVNum,ENum;intw[n][n];}Graph;voidcreate_graph(Graph&G){i
hz5034
·
2020-08-23 05:50
算法导论
算法导论
第三版 22.3 深度优先搜索 课后题答案全解析
22.3深度优先搜索:1.问有向图和无向图可能存在的三种颜色的点到点之间的边。这个问题比较简单,直接上传原版答案,但是要注意,有向图中存在黑色点到其他点的边,虽然黑色点是已经搜索结束的,但是这样的边始终存在。有向图:无向图:2.答案如下:注意其中数字没有重复的,无论如何time值都会+1。3.给出括号结构,题目中要求的是22-4即下图:因此括号结构应该为(((())))(()),作者认为参考答案解
谦恭
·
2020-08-23 05:39
algorithms
算法导论
22.2广度优先搜索 练习总结
22.2-1请计算出在有向图22-2(a)上运行广度优先搜索算法后的d值和π值,这里假定结点3为算法所用的源结点。ANSWER:22.2-2请计算出在图22-3所示无向图上运行广度优先搜索算法后的d值和π值。这里假定结点u为算法所用的源结点。ANSWER:22.2-3证明:使用单个位来存放每个结点的颜色即可。这个论点可以通过证明将算法第18行的伪代码删除后,BFS过程生成的结果不变来得到。ANSW
funggor
·
2020-08-23 05:47
算法导论(第3版)
算法导论
22章基本的图算法 思考题总结
22-1(以广度优先搜索来对图的边进行分类)深度优先搜索将图中的边分类为树边、后向边、前向边和横向边。广度优先搜索也可以用来进行这种分类。具体来说,广度优先搜索将从源结点可以到达的边划分为同样的4种类型。a.证明在对无向图进行的广度优先搜索中,下面的性质成立:1.不存在后向边,也不存在前向边。2.对于每条树边(u,v),我们有v.d=u.d+1。3.对于每条横向边(u,v),我么有v.d=u.d或
funggor
·
2020-08-23 05:14
算法导论(第3版)
线性规划及其解法
参考《
算法导论
》26章29章线性规划研究线性规划定义及其单纯性法(多项式时间方法)29.1标准型和松弛型研究线性规划的两种表现形式,标准型和松弛型以及其
LeetCoder
·
2020-08-23 05:44
算法
算法导论
书籍学习
第17章平摊分析17.1聚集分析这里的确定一个n个操作序列的总代价的上界T(n),也许某一步操作代价很大,但是平均代价很小的。该分析会被用在分析单源最短路径中的Dijkstra算法中,其朴素版本算法复杂度为O(v2+E),其中的E就是用聚集分析分析出来的。两个例子:第一个例子(考虑某个出栈k个元素的操作)第二个例子一个二进制加法器的操作我的直观感觉就是针对一个数据结构的操作分布在n步中,也许每一步
LeetCoder
·
2020-08-23 05:44
算法
算法导论
学习《视频》
很明显,啃
算法导论
是我必须要做的事情,参考《
算法导论
》b站
算法导论
分为两个部分,第一部分为算法分析,第二部分为算法设计。算法分析关注性能,也就是时间复杂度。
LeetCoder
·
2020-08-23 05:43
算法
算法导论
(第三版)-复习15动态规划
15动态规划1课后习题15.1-1数学归纳法证明15.1-2总长6,(i=4,p=8),(i=3,p=5)15.1-3rn=max(pi-c+rn−i),i=1..n15.1-4纪录每次切割i15.1-5顶点:0..n,边:2*(n-2+1)2课后习题15.2-1m[i,k]+m[k+1,j]+pi−1pkpj((A1A2)((A3A4)(A5A6)))…详见附件15.2-2F(A,s,i,j)i
ZoeyyeoZ
·
2020-08-23 05:00
算法
算法导论
(第三版)-复习16贪心算法
SchedulingTask[t]纪录开始时间为t的任务链表f[t]纪录t-n时间内最大value值,初始均为0fori=n-1to0do{t=Task[i].head;while(t){f[i]=max{f[i],f[t.endtime]+t.value};t=t->next;}f[i]=max{f[i],f[i+1]};}Fractionalknapsack根据性价比v/w排序证明分数背包问题
ZoeyyeoZ
·
2020-08-23 05:00
算法
算法导论
(第三版)-复习- 第六部分图论思考题 22 基本的图算法
ArticulationVertex/BridgeMatchingUSTC-算法基础课-2013-第二次习题课22基本的图算法
算法导论
22.1图的表示练习总结
算法导论
22.2广度优先搜索练习总结
算法导论
ZoeyyeoZ
·
2020-08-23 04:43
算法
图论
算法导论
(第三版)-复习- 第六部分图论 22-26[转]
22习题22.1-5有向图G(V,E)的平方图。链表表示时,对每结点u的Adj[u]中所有v加入队列,后边出队边将Adj[v]加入Adj[u]中。矩阵表示时,若w[i,j]、w[j,k]同时为1则将w[i,k]置1.习题22.1-6O(V)的时间寻找通用汇点。汇点的特征是邻接矩阵的第j列除[j,j]外所有元素为1.可将每行调整[j,j]后作为一个整数,所有整数与运算,为1的位是汇点。习题22.1-
ZoeyyeoZ
·
2020-08-23 04:43
算法
图论
LSTM的备胎,用卷积处理时间序列——TCN与因果卷积(理论+
Python实践
)
什么是TCNTCN全称TemporalConvolutionalNetwork,时序卷积网络,是在2018年提出的一个卷积模型,但是可以用来处理时间序列。卷积如何处理时间序列时间序列预测,最容易想到的就是那个马尔可夫模型:P(yk∣xk,xk−1,...,x1)P(y_k|x_k,x_{k-1},...,x_1)P(yk∣xk,xk−1,...,x1)就是计算某一个时刻的输出值,已知条件就是这个时
微信公众号[机器学习炼丹术]
·
2020-08-23 04:18
PyTorch
从零学习深度网络
桶排序的单链表实现及其变种
《
算法导论
》中桶排序问题的单链表实现《
算法导论
》CLRS第八章线性时间排序8.4桶排序桶排序的思想就是把区间[0,1)划分成n个相同大小的子区间,每一个区间称为桶(bucket)。
大白技术控
·
2020-08-23 04:01
C/C++
《
算法导论
》读书笔记之第15章 动态规划—矩阵链乘法
前言:今天接着学习动态规划算法,学习如何用动态规划来分析解决矩阵链乘问题。首先回顾一下矩阵乘法运算法,并给出C++语言实现过程。然后采用动态规划算法分析矩阵链乘问题并给出C语言实现过程。1、矩阵乘法从定义可以看出:只有当矩阵A的列数与矩阵B的行数相等时A×B才有意义。一个m×r的矩阵A左乘一个r×n的矩阵B,会得到一个m×n的矩阵C。在计算机中,一个矩阵说穿了就是一个二维数组。一个m行r列的矩阵可
weixin_34220179
·
2020-08-23 03:21
上一页
16
17
18
19
20
21
22
23
下一页
按字母分类:
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
其他