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实践
算法导论
_第二章_算法基础
算法基础伪代码:利用简洁的语句,抛去繁杂的语言特征,忽略数据抽象、模块性、和错误处理的问题,表达出算法的本质循环不变式作用:帮助我们理解算法的正确性关于循环不变式需要证明三条性质:1.初始化:循环的第一次迭代之前,它为真2.保持:如果循环的某次迭代之前它为真,那么下次迭代之前它仍为真3.在循环终止时,不变式为我们提供了一个有用的性质,该性质有助于证明算法是正确的。其类似与数学归纳法,条件1为基本情
chudongfang2015
·
2016-06-23 16:07
算法导论
笔记
算法导论
_第一章_算法在计算中的作用
算法在计算中的作用算法:任何良性定义的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。数据结构:数据结构是一种储存和组织数据的方式,旨在便于访问和修改。效率:算法很重要的一点就是效率,效率的高低决定了算法的优越性。算法是当代计算机中使用的大多数技术的核心,如果你对算法懂得不多,你也可以完成一些任务,但是,如果有一个好的算法背景,那么你可以做的事情就多的多!
chudongfang2015
·
2016-06-23 16:58
二叉查找树
本文主要参考
算法导论
,详细介绍二叉查找树的原理及具体的python和java代码实现。1.定义查找树是一种数据结构,它支持
shibing624
·
2016-06-22 12:00
Math
算法导论
之数据结构
数据结构集合,是数学也是计算机科学的基础,在表示和操纵有穷、动态集合上,动态集合中每个元素由对象来表示,并有指向对象的指针。对动态集合的操作分为两类:查询和修改,操作以指针为导航,涉及元素对象内的关键字和卫星数据。数据结构和动态集合的关系,可以这么理解,把集合中的元素根据相互间关系用某种结构组织起来,方便查询和修改。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,是计算机存储和数据组织
fjssharpsword
·
2016-06-17 09:00
算法导论
01背包实现
01背包问题描述已知:有一个容量为V的背包和N件物品,第i件物品的重量是weight[i],收益是cost[i]。限制:每种物品只有一件,可以选择放或者不放问题:在不超过背包容量的情况下,最多能获得多少价值或收益相似问题:在恰好装满背包的情况下,最多能获得多少价值或收益这里,我们先讨论在不超过背包容量的情况下,最多能获得多少价值或收益。基本思路01背包的特点:每种物品只有一件,可以选择放或者不放子
taoyanqi8932
·
2016-06-16 17:00
算法导论
算法导论
活动选择问题
#include"stdafx.h" #include #include #include usingnamespacestd; //虚拟了一个活动,使他一定选择a1位第一个活动 //注意这里的结束时间是单调增的 //递归的写法如下 vectorresult; vectorActiveSelect(vectorstart,vectorend,intk,intn) { intm=k+1;//k位当前
taoyanqi8932
·
2016-06-16 11:00
算法导论
最长公共子序列的经典c++解法
算法原理见
算法导论
核心思想动态规划———-自底向上方法//resize是改变容器的大小,且在创建对象,因此,调用这个函数之后 //就可以引用容器内的对象了,因此当加入新的元素时,用operator[]操作符
taoyanqi8932
·
2016-06-14 20:00
C++
最长公共子序列
读书笔记--《编程之美》--中国象棋将帅问题
《编程之美》---1.2中国象棋将帅问题中国象棋将帅问题由于比较简单,所以我们暂时不用请出《
算法导论
》。
Lieacui
·
2016-06-14 14:48
Heap Sort 实现(MIT Algorithm Course)
阅读更多根据
算法导论
实现。有个小缺陷,heapsort中result是逆序排序。
penergy
·
2016-06-05 09:00
python
heapsort
algorithm
算法导论
之贪心算法:带惩罚的任务调度算法
带惩罚的任务调度问题:单处理器上带截止时间和惩罚的单位时间任务调度问题有以下输入:1、n个单位时间任务的集合S={a1,a2,……,an};2、n个整数截止时间d1,d2,……,dn,每个di满足1tasks=null;//所有任务privateListearlyTasks=null;//早任务privateListlateTasks=null;//晚任务privateComparatorcomp
WSYW126
·
2016-06-04 22:47
算法导论
算法导论
之排序和顺序统计学
排序:对N个数的序列重排过程。待排序的数,一般是选择记录中数据集的关键字key作为排序的值,而数据集中其他数据(称为:卫星数据)以key为中心移动。实际上,对于排序过程中,key的移动和交换,卫星数据并不定跟着,只要记录的指针随key交换即可,将数据移动量减小到最小。关键字和卫星数据所构成的数据集,在实际排序应用中,不单只关注关键字序列,还关心卫星数据的存储结构,在选用具体排序算法中有一定考量。排
fjssharpsword
·
2016-06-02 15:00
常见的排序算法(四)( 归并排序,计数排序 , 基数排序)
(如果读者不太了解什么叫分治法,可以去看看《
算法导论
》第一二章。)归并过程为:比较a[i]和a[j]的大小,若a[i
github_35124642
·
2016-05-26 13:00
常见的排序算法(四)( 归并排序,计数排序 , 基数排序)
(如果读者不太了解什么叫分治法,可以去看看《
算法导论
》第一二章。)归并过程为:比较a[i]和a[j]的大小,若a[i]≤a
泄密的心
·
2016-05-25 22:01
归并排序
计数排序
基数排序
X的N次方 朴素分治法-Java
http://open.163.com/special/opencourse/algorithms.html
算法导论
里讲了计算x的N次方计算方法,很节省资源的一种算法。
dingsai88
·
2016-05-25 17:06
X的N次方 朴素分治法-Java
http://open.163.com/special/opencourse/algorithms.html
算法导论
里讲了计算x的N次方计算方法,很节省资源的一种算法。
dingsai88
·
2016-05-25 17:00
[算法学习]字符串匹配
算法导论
第32章,字符串匹配问题。本章一共给出了四个算法,分别是朴素算法,Rabin-Karp算法,有限自动机算法和kmp算法。
agsws
·
2016-05-25 14:00
算法
String
[算法学习]线性时间排序:计数排序、基数排序和桶排序
在
算法导论
中第八章专门列出了线性时间的排序算法,常规的基于比较的排序算法的上限是O(nlogn),本章介绍了三个算法,计数排序,基数排序,桶排序。
agsws
·
2016-05-24 18:00
acm编程比赛
推荐买一本《
算法导论
》,那本书行,看起来超爽!!!基本掌握语法还不行啊,语法的超熟练掌握,不然出了错误很难调试的!!!最重要的是超牛皮的头脑啦,分析能力,逻辑推理能力很重要。
jiang314
·
2016-05-24 10:00
ACM
计算机比赛
树的直径
在《
算法导论
》中有这样一个问题:比如,下图中树的直径就是(6-4-2-1-3),长度为4。有多种方法解决这个问题,我们讲解两种。第一种办法是进行两次bfs搜索。假设s和t是直径上的两个端点。
qq_32400847
·
2016-05-21 16:00
算法导论
之概率分析和随机算法
在问题的分析中应用概率技术称为概率分析,前期是对所有可能的输入集合可以做假定。如果无法对输入分布做合理性建模,如果一个算法的行为不只是由输入决定,同时也由随机数生成器所产生的数值决定,则为随机算法。行为随机化和概率平均化,是算法设计和分析的工具。
fjssharpsword
·
2016-05-16 11:00
广度/宽度优先搜索(BFS)详解
一个广度/宽度优先搜索(BFS)
算法导论
里边会给出不少严格的证明,我想尽量写得通俗一点,因此采用一些直观的讲法来伪装成证明,关键的point能够帮你get到就好。2
liangzhaoyang1
·
2016-05-15 07:00
广度
宽度优先搜索
BFS详解
算法导论
第十九章 斐波那契堆
《
算法导论
》第二版中在讨论斐波那契堆之前还讨论了二项堆,但是第三版中已经把这块的内容放到思考题中,究极原因我想大概是二项堆只是个引子,目的是为了引出斐波那契堆,便于理解,而且许多经典的算法实现都是基于斐波那契堆
bakari
·
2016-05-12 20:00
插入排序法
前言 最近买了一本
算法导论
的书籍,同学念研究生就是用的这本书,其实这些算法数据结构直接就该弄完的,都工作四年了,只是知道一点说来惭愧,不懂算法的程序员不是好的程序员。
xiaoyon
·
2016-05-12 15:00
算法导论
第十八章 B树
一、高级数据结构本章以后到第21章(并查集)隶属于高级数据结构的内容。前面还留了两章:贪心算法和摊还分析,打算后面再来补充。之前的章节讨论的支持动态数据集上的操作,如查找、插入、删除等都是基于简单的线性表、链表和树等结构,本章以后的部分在原来更高的层次上来讨论这些操作,更高的层次意味着更复杂的结构,但更低的时间复杂度(包括摊还时间)。B树是为磁盘存储还专门设计的平衡查找树。因为磁盘操作的速度要远远
bakari
·
2016-05-11 21:00
C++标准模板库_note(3)
关联容器特点set,multiset,map,mutimap是一种非线性的树结构–红黑是(
算法导论
里有详细说明)。set一组元素的集合,元素都是唯一的而且按照一定顺序排列,每个元素被称为实例。
gr47725812
·
2016-05-11 16:00
链表
C语言
存储
算法导论
数据存储
算法导论
之数学归纳法和递归
推理是一种逻辑思维,一种方法论,归纳推理是从个性推导到共性的过程,而演绎推理则从共性递推到个性的过程。事物的一般性和特殊性,是推理方法的基点,通过下面例子来简单理解下归纳推理是如何从特殊上升到一般。数学归纳法首先证明起点值命题成立,然后证明从n值到n+1的过程有效,而后任意值递推可得。证明自然数N的阶乘N!步骤:已知N!=N*(N-1)*(N-2)*(N-3)*…*2*1,当N=1时N!=1,设当
fjssharpsword
·
2016-05-11 10:47
Algorithm
算法导论专栏
算法导论
之数学归纳法和递归
推理是一种逻辑思维,一种方法论,归纳推理是从个性推导到共性的过程,而演绎推理则从共性递推到个性的过程。事物的一般性和特殊性,是推理方法的基点,通过下面例子来简单理解下归纳推理是如何从特殊上升到一般。数学归纳法首先证明起点值命题成立,然后证明从n值到n+1的过程有效,而后任意值递推可得。证明自然数N的阶乘N!步骤:已知N!=N*(N-1)*(N-2)*(N-3)*…*2*1,当N=1时N!=1,设当
fjssharpsword
·
2016-05-11 10:00
算法导论
之二叉排序树
二叉排序树定义:1、以一颗二叉树来组织。2、包含属性指向左孩子、右孩子和双亲。3、对任何结点x,其左子树的关键字最大不超过x->value,其右子树中的关键字最小不低于x->value。实现代码如下:#include #include structTreeNode{ intvalue; structTreeNode*left; structTreeNode*right; structTreeNo
WSYW126
·
2016-05-10 19:00
二叉排序树
算法导论
[置顶] ACM培训计划与相关书籍
,王晓东编著,我所见过的最好的算法教材)程序设计导引及在线实践 作者:李文新ACM程序设计培训教程吴昊 基础提高算法艺术与信息学竞赛第二版刘汝佳算法设计与分析 王晓东算法设计与试验题解王晓东科曼:《
算法导论
qq845579063
·
2016-05-09 19:00
C++
算法
书籍
ACM
训练
红黑树C语言实现--源于
算法导论
一、概念红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED或BLACK。通过对任何一条从根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长2倍,因而是近似于平衡的。二、定义一棵红黑树是满足下面红黑性质的二叉搜索树:1、每个结点或是红色,或是黑色;2、根节点是黑色的;3、每个叶节点(NIL)是黑色的;4、如果一个结点是红色的,则它的两个
xiaowang627
·
2016-05-07 23:00
算法导论
红黑树
快速排序
不过,今天看《
算法导论
》,耐着性子看完觉得不是很难。不过,要证明它的最坏时间复杂度为O(n*2),平均时间期望复杂度为O(n*lgn),应该来说,快速排序是实际排序应用中最好的选择。
Jaster_wisdom
·
2016-05-07 15:00
C++
算法
递归
快速排序
算法导论
计算机经典算法汇总
[-]《代码大全》史蒂夫·迈克康奈尔《程序员修炼之道》《计算机程序的构造和解释》《C程序设计语言》《
算法导论
》《重构:改善既有代码的设计》《设计模式》《人月神话》《计算机程序设计艺术》《编译原理》(龙书
shuimanting520
·
2016-05-06 08:00
算法
计算机
[置顶] 活动选择问题(3)-区间着色问题
此问题为
算法导论
的课后题,为了方便以后查看,查阅了有关计算复杂性和图论的一些相关内容,花了一些时间记录一下。
u010392759
·
2016-05-06 00:00
算法
算法导论
【Coding
算法导论
】第4章:最大子数组问题
Coding
算法导论
本系列文章主要针对
算法导论
一书上的算法,将书中的伪代码用C++实现代码未经过大量数据测试,如有问题,希望能在回复中指出!
terence1212
·
2016-05-04 20:00
C++
算法导论
算法导论
之NP完全性和近似算法
NP完全性和近似算法在理解NP完全性之前,笔者想引入关于科学与伪科学的定义。凡可接受实践检验、可被证实和被否正的为科学,相反之为非科学,而伪科学是非科学之子集,与科学相对立,认定非科学为科学的即是伪科学。三者关系可简化为:科学相反于非科学、对立于非科学子集伪科学。集合的运算关系见下面,科学定义为S、非科学定义为NS、伪科学定义为FS。算法是用来解决问题的,一个问题能否在多项式时间内完成是衡量问题复
fjssharpsword
·
2016-05-04 17:00
算法导论
—AC自动机
华电北风吹日期:2016-05-03AC自动机是比较高效的多模式匹配算法。类似于KMP在模式串上的状态转移算法,AC自动机通过在trie树上建立状态转移,使得对匹配串遍历一遍就可以找到所有的模式串。AC自动机一般有以下三步:首先,对所有的模式串建立trie树。然后,对trie树所有节点以它的最长后缀对应的前缀字符串作为它的失配指针,建立AC自动机。最后一步,对文本串在AC自动机上进行匹配。题目链接
zhangzhengyi03539
·
2016-05-03 10:00
[
算法导论
] 快速排序
packagequicksort; publicclassSolution{ publicstaticvoidmain(String[]args){ QuickSortquickSort=newQuickSort(); int[]datas=newint[]{5,6,8,1,3,10,8,5,4,15,11}; quickSort.setData(datas); quickSort.Quick
wangjianyu0115
·
2016-05-02 22:00
快速排序
算法导论
扩展欧几里得算法证明过程
扩展欧几里得算法的证明方法,看了很多书,还是
算法导论
的证明思路比较容易理解要证内容gcd(a,b)=ax+by,其中gcd(x,y)是ax+by的最小正元素。
glu_cky
·
2016-05-02 09:47
数论
扩展欧几里得算法证明过程
扩展欧几里得算法的证明方法,看了很多书,还是
算法导论
的证明思路比较容易理解要证内容gcd(a,b)=ax+by,其中gcd(x,y)是ax+by的最小正元素。
glu_cky
·
2016-05-02 09:00
桶排序的单链表实现及其变种
《
算法导论
》中桶排序问题的单链表实现《
算法导论
》CLRS 第八章线性时间排序8.4桶排序桶排序的思想就是把区间[0,1)划分成n个相同大小的子区间,每一个区间称为桶(bucket)。
yanglr2010
·
2016-05-01 15:00
排序算法
算法导论
上的代码:HeapSort.h#definePARENT(i)(i-1)/2 #defineLEFTCHILD(i)i*2+1 #defineRIGHTCHILD(i)(i+1)*2 voidmax_h
u011567017
·
2016-04-29 15:00
C++
函数
heap
poj
排序算法
《
算法导论
》第12章 二叉查找树
摘要:本章介绍了二叉查找树的概念及操作。主要内容包括二叉查找树的性质,如何在二叉查找树中查找最大值、最小值和给定的值,如何找出某一个元素的前驱和后继,如何在二叉查找树中进行插入和删除操作。在二叉查找树上执行这些基本操作的时间与树的高度成正比,一棵随机构造的二叉查找树的期望高度为O(lgn),从而基本动态集合的操作平均时间为θ(lgn)。1、二叉查找树二叉查找树是按照二叉树结构来组织的,因此可以用二
luming_xml
·
2016-04-28 19:00
搜索
二叉树
树
算法导论
《
算法导论
》第13章 红黑树
简介: 红黑树是一种二叉查找树,但在每个结点上增加了一个存储位表示结点的颜色,可以是RED或者BLACK。通过对任何一条从根到叶子的路径上各个着色方式的限制,红黑树确保没有一条路径会比其他路径长出两倍,因而是接近平衡的。 红黑树(red-blacktree)是一种平衡的二叉查找树,它能保证在最坏情况下,基本的动态操作集合运行时间为O(lgn)。红黑树的用途非常广泛,例如STL中的map就是
luming_xml
·
2016-04-28 19:00
数据结构
算法导论
九大排序算法-大数据
本文是 http://blog.csdn.net/xiazdong/article/details/7304239 的补充,当年看了《大话数据结构》总结的,但是现在看了《
算法导论
》,发现以前对排序的理解还不深入
qq_20389175
·
2016-04-28 09:00
分治法解最大连续公共子序列
这篇文章是在自学
算法导论
练习的直接入正题:最大连续子序列(分治法)原理: 一串数组可以对半分,一串数组的最大连续子序列可能是在左端,右端以及跨越中间 依次递归分解求得最小块的最大值,
lym77777
·
2016-04-27 17:00
算法导论
动态规划之最长回文子序列
首先需要强调的一点是:子序列不同于子串,子串要求必须连续,而子序列则不需要,与本篇讨论的这个问题比较相似的一个问题就是求一个字符串的最长回文子串,这个问题我们在下一篇会进行讨论。这里我们说两种解这道题的方法:方法一:这个方法是一个比较巧妙的思路,只要把原字符串逆转后和原字符串比较并且利用求最长公共子序列的方式求出LCS即可得到最长回文子序列。也就是说求出的LCS=最长回文子序列。方法二:即针对本题
chuyangzhanfang
·
2016-04-25 23:32
动态规划
最长公共子序列
这个问题在《
算法导论
》中作为讲动态规划算法的例题出现。 动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。
qq_16836151
·
2016-04-25 20:00
Python实践
课-点球大战
mark:2016-04-25#coding=utf-8 importtime fromrandomimportchoice #definealisttostoretheresult result=[0,0] #definetwofuncation orientation=['1','2','3','4','5'] defkick(): print'===Round%d-youkick!==='%
qianbinbin1122
·
2016-04-25 18:00
判断线段相交的实现
根据
算法导论
33章里的算法实现。
caspiansea
·
2016-04-25 11:34
Algorithms
判断线段相交的实现
根据
算法导论
33章里的算法实现。
CaspianSea
·
2016-04-25 11:00
上一页
53
54
55
56
57
58
59
60
下一页
按字母分类:
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
其他