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实践
算法导论
2.3-7的算法
题:一个长度为n的整数集合S,一个整数x,写一个算法,判断S中是否有两数之和等于x,时间复杂度要求O(nlgn) 解答如下: 1.算法思路:先用归并排序法对S进行排序,然后用二分查找法,查找S中有无等于x-S[i]的值 2.伪代码如下: bool CheckSums(S,p,r,x) { S<--sort(S);//用归并排序
·
2015-11-11 11:00
算法导论
算法导论
2.3-7答案
题:一个长度为n的整数集合S,一个整数x,写一个算法,判断S中是否有两数之和等于x,时间复杂度要求O(nlgn) 解答如下: 1.算法思路:先用归并排序法对S进行排序,然后用二分查找法,查找S中有无等于x-S[i]的值 2.伪代码如下: bool CheckSums(S,p,r,x) { S<--sort(S);//用归并排序
·
2015-11-11 11:00
算法导论
acm推荐题目
一.动态规划 参考资料: 刘汝佳《算法艺术与信息学竞赛》《
算法导论
》 推荐题目: http://acm.pku.edu.cn
·
2015-11-11 11:24
ACM
算法导论
:比较排序算法笔记
好几天没看《
算法导论
》,今天看了一天的排序算法,印象第一的是基数算法,因为居然违反我的一个常识,它采用的是最低有效位进行排序的。
·
2015-11-11 11:28
排序算法
最大流算法
算法导论
和很多大神博客都讲解的很详细。 它其实就是不停的找增广路直到找不到为止。此时通过的所有流量就是最大流量。 我推荐一篇文章:(基本过程讲解的很详细,我很收益。)
·
2015-11-11 11:14
最大流
五大算法之一-动态规划(从《运筹学》和《
算法导论
》两个角度分析)
紧接着又给出了《
算法导论
》中动态规划的定义和一般解法,并运用《
算法导论
》中的最优子结构、子问题重叠、自下而上三个关键词来分析例3.并比较了
·
2015-11-11 10:19
动态规划
SDUT 2048 最优布线问题(prim)
题目链接 在von学长的讲解,各种资料,
算法导论
神马的,都观摩了一遍,外加这个博客和这个终于理解了。。。。
·
2015-11-11 10:54
Prim
算法导论
之快速排序---学习笔记
最近一直在看《
算法导论
》,看完麻省理工的视频,才敢动手敲敲代码。
·
2015-11-11 10:24
快速排序
算法导论
第六章 堆排序
主要内容: 堆、最大堆、最小堆的基本概念 堆的操作:调整、创建、排序 采用堆实现优先级队列 基本概念 堆(heap)亦被称为:优先队列(priority queue) 逻辑定义: n个元素序列{k1,k2...ki...kn},当且仅当满足下列关系时称之为堆: (ki <= k2i,ki <= k2i+1)或者(ki >= k2i,ki >=
·
2015-11-11 09:12
算法导论
算法导论
基础(第一~五章)
插入排序 最好情况输入数组开始时候就是满足要求的排好序的,时间代价为θ(n); 最坏情况输入数组是按逆序排序的,时间代价为θ(n^2)。 归并排序 归并排序采用了算法设计中的分治法,分治法的思想是将原问题分解成n个规模较小而结构与原问题相似的小问题,递归的解决这些子问题,然后再去合并其结果,得到原问题的解。 分治模式在每一层递归上有三个步骤: 分解(divide):将原问
·
2015-11-11 09:11
算法导论
跟着编程之美学算法——最长公共子序列
这个问题在《
算法导论
》中作为讲动态规划算法的例题出现。 动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。
·
2015-11-11 09:45
编程之美
搞ACM的你伤不起 原作者:RoBa
谁再跟劳资讲算法之美算法的力量,劳资一本
算法导论
拍死你啊!!!!!!!! 那是搞ACM的入门书啊!!!!特么的入门书就一千多页啊!!!!!!! 还
·
2015-11-11 09:03
ACM
小小的改进,逻辑运算
前天,终于入手了一些一直想买的书,比如《
算法导论
》、《编程珠玑》。
·
2015-11-11 08:21
运算
《
算法导论
》学习笔记一:课程简介及算法分析
MIT的
算法导论
公开课,很多年前就看到了,一直没有坚持去看,最近找暑假实习,面试基本都是算法,只好抽时间去狂刷leetcode,也借着这个机会希望把这个视频看完,把算法的基本功打扎实,这个公开课讲得还是挺不错的
·
2015-11-11 07:08
学习笔记
算法导论
第21章 不相交集合的数据结构
文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。 等价关系与等价类 从数学上看,等价类是一个对象(或成员)的集合,在此集合中的所有对象应满足等价关系。若用符号"≡"表示集合上的等价关系,那么对于该集合中的任意对象x,y, z,下列性质成立: 1、自反性:x ≡ x 2、对称性:若 x ≡ y 则 y
·
2015-11-11 07:57
数据结构
算法导论
第22章 图论之拓扑排序
邻接表 邻接矩阵用二维数组即可存取,比较简单,但除完全图外,一般的图不是任意两个顶点都相邻接,因此邻接矩阵也有很多零元素,特别是当n 较大而边数相对完全图的边(n-1)又少得多时,邻接矩阵仍是很稀疏,这样浪费存储空间。 邻接表(Adjacency List)是图的一种顺序存储与链
·
2015-11-11 07:57
算法导论
算法导论
第7章 课后习题
7.2-4 银行经常按照交易时间,来记录有关某一账户的交易情况,但是,很多人喜欢按照票据号来收到其银行对账单。因此,如何将按交易时间排序转换成按支票编号来排序,就成为一个对几乎排好序的输入进行排序的问题。证明在这个问题上,过程INSERT-SORT的性能往往优于过程QUIKSORT。 问题解析: 对于QUIKSORT
·
2015-11-11 07:52
算法导论
算法导论
第8章 线性时间排序 课后习题
8.2-2 证明COUNTING-SORT是稳定的。 问题解答: 假设输入数组A[1...n],length[A]=n,数组A中有两个元素具有相同的值,下标分别为a,b(1≤a<b≤n)即A[a] = A[b]。经过计数排序运行至行7,C[A[a]] = C[A[b]]。在第9~11行中循环部分中,循环变量 i 用于指示数组A的下标,其值从 length[A] 到 1
·
2015-11-11 07:52
算法导论
算法导论
第6章堆排序 课后习题
6.5-7 Heap-DELETE(A, i)操作结点i中的项从堆A中删去。对含n个元素的最大堆,请给出时间为O(lgn)的HEAP-DELETE的实现。 Heap-DELETE(A, i) del_val ← &nbs
·
2015-11-11 07:51
算法导论
<2014 05 09> Lucida:我的算法学习之路
[转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如
算法导论
指的实际上是数据结构和
算法导论
),所以我认为本文题目是合理的
·
2015-11-11 07:57
算法
最长公共子序列(LCS)
POJ-Prob.1458 看
算法导论
3 自己用java写的,flag可以不用,课后题要求用min(m,n)+O(1)的空间完成...改天再写. 1 import java.util.Scanner
·
2015-11-11 07:44
序列
红黑书——
算法导论
一颗二叉查找树如果满足下面的红黑性质,则为一棵红黑树: (1) 每个节点或者是黑色,或者是红色。(2) 根节点是黑色。(3) 每个叶子节点是黑色。 【注意:这里叶子节点,是指为空的叶子节点】(4) 如果一个节点是红色的,则它的子节点必须是黑色的。 《等价于》 如果一个节点是红色的,则它的父节点必须是黑色节点;(5) 从一个节点到该节点的子孙节点的所有路径上包含相同数目
·
2015-11-11 06:14
算法导论
Randomize select algorithm 随机选择算法
从一个序列里面选择第k大的数在没有学习
算法导论
之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值。如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn)。
·
2015-11-11 06:13
Algorithm
《
算法导论
》之分治策略与动态规划
分治策略 分治策略是一种很重要的算法思想,很多很多问题都可以用分治策略解决。比如排序,汉诺塔以及一些最优化问题等等 分治策略的意义就是将复杂问题还原成简单问题解决掉,且这些简单问题具有某些共同逻辑。 递归实现的代码会很简洁,逻辑也会简单些,但复杂度分析就难
·
2015-11-11 06:24
动态规划
《
算法导论
》之基础篇
说来惭愧,
算法导论
这么牛b的一本书,我都没有系统的看过。 有时候明白一个算法的意义比理解算法本身更重要
算法导论
里面那么多的数据结构和算法,不可能在实践中都碰的到。
·
2015-11-11 06:23
算法导论
红黑树的C++实现
资料 关于红黑树的理论,那本《
算法导论
》中进行了详细的分析,但我觉得下面这篇文章讲得更详细: http://blog.163.com/aaronliu@yeah/blog/static/6596183720090143521990
·
2015-11-11 04:17
C++
我的算法之路
关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如
算法导论
指的实际上是数据结构和
算法导论
),所以我认为本文题目是合理的。
·
2015-11-11 04:26
算法
[wikioi]合并果子
算法导论
里的方法名是heapify()等,但大家经常用更直观的down(), up()方法(向上,下调整),根据这两个方法,可以有build,insert,getmin方法。
·
2015-11-11 03:09
IO
[jobdu]数组中的逆序对
pid=1348 数组中的逆序对也是个常见的题目,
算法导论
中也有一些描述,参考:http://www.cnblogs.com/wuyuegb2312/p/3156286.html。
·
2015-11-11 03:48
job
华为牛人十年感悟 摘
之前下载过这篇文章,好像一直没有仔细阅读,今天上午
算法导论
有点看不下去的时候,正好把这篇文章找出来看下,网上给的内容基本不全,或者有拼接的地方 这里给出转载地址: ps:其实在毕业校招的时候,真的很想进华为
·
2015-11-11 03:15
华为
ZZU第四届程序设计大赛 5-红黑树
《
算法导论
》上可不是这么说的:如果一个二叉查找树满足下面的红黑性质,那么则为一个红黑树。1)每个节点或是红的,或者是黑的。2)每个叶子节点(NIL)是黑色的3)如果一个
·
2015-11-11 03:27
程序设计
Python实现快速排序
这里采用的是
算法导论
的划分方式: import random def partition(array, left, right): pivot = array[left]
·
2015-11-11 03:46
python
计数排序及优化
最近在看
算法导论
的公开课视频,刚好看到计数排序,下面是引用的维基百科关于计数排序的解释: 当输入的元素是 n 个 0 到 k 之间的整数时,它的运行时间是 Θ(n + k)。
·
2015-11-11 02:09
排序
【算法题】rand5()产生rand7()
前两天,睡觉前,偶尔翻起
算法导论
,看到随机函数这一块内容,里面有一个练习题. 5.1-2 描述random(a,b)过程的一种实现,它只调用random(0,1).作为a和b的函数,你的程序的期望运行时间是多少
·
2015-11-11 02:31
算法
2015全年计划
读书计划 读书主要分为三类,专业类、学术类和英文类; 专业类主要包括:代码大全2(看了一部分)、深入理解计算机系统(之前看了开头几十页)、
算法导论
、UNIX环境高级编程(1年半前看过一半)、TCP/
·
2015-11-11 01:37
计划
《
算法导论
》读书笔记--第1、2章课后题
第一章 思考题 1-1(运行时间的比较)确定时间t内求解的问题的最大规模。 上面是网上提供的答案。 注意点: 1、最左边一列的是关于n的增长情况描述,值得记住的是这些增长的排列顺序,这是非常有用的,啊,数分学好了会很容易; 2、注意1s内能处理的以n为增长量级的规模是10的6次方,记住这个结果可以推导出其他增长量级的处理规模; 3、注意这里的lg指的是以2为底的对数函数。 顺便
·
2015-11-11 01:26
读书笔记
《
算法导论
》读书笔记--第二章 2.3 设计算法
我们可以使用的算法设计技术有很多。插入排序用的是增量方法,即在已经排好的数组中不断加入新的元素。下面考虑一种被称为“分治法”的设计方法。 2.3.1分治法 分治法的思想:将原问题分解为几个规模较小但是类似于原问题的子问题,递归地求解这些子问题,然后合并这些子问题的解来建立原问题的解。分治模式在每层递归时有三个步骤: 分解原问题为若干子问题; 解决这些子问题,递归地求解各子问题,若子问题规模
·
2015-11-11 01:25
读书笔记
《
算法导论
》读书笔记--第二章 2.2 分析算法
2.2分析算法 分析算法的结果意味着预测算法需要的资源。虽然有时候关心内存、通讯或者计算机硬件,但是通常我们想度量的是时间。 在分析算法之前,要有一个实现技术的模型,包括描述所用资源及其代价的模型。我们假定一种通用的单处理器计算模型—随机访问机(random-access machine,RAM)来作为我们的实现技术,算法可以用计算机程序来实现。在RAM模型中,指令一条接一条执行,并没有并发操
·
2015-11-11 01:25
读书笔记
《
算法导论
》读书笔记--第二章 2.1 插入排序
2.1插入排序 伪代码与真代码的区别在于,伪代码我们使用最简洁、最清晰的表示方法来说明给定的算法。这样的原则下,在伪代码中就会出现英语。 插入排序的特点:1、少量元素时,是一种有效的算法;2、直观想象:按顺序排扑克牌;3、是一种原址排序算法,即在同一个数组中完成排序工作,注意:在任何时刻,已经排好序的部分还是原来的数,只不过顺序已经排好而已。下面是伪代码: //INSERTION-SORT
·
2015-11-11 01:24
读书笔记
《
算法导论
》读书笔记--第一章
第一章 算法在计算中的作用 一、什么是算法?为什么算法值得研究?相对于计算机中使用的其他技术来说算法的作用是什么? 算法就是任何良定义的计算过程,该过程取某个值或者值的集合作为输入并产生某个值或者值的集合作为输出。这样算法就是把输入转换成输出的计算步骤的一个序列。 若对每个输入实例算法都以正确的输出停机,则称该算法是正确的,并称正确的算法解决了给定的计算问题。注意:不正确的算法只要其错误率可
·
2015-11-11 01:23
读书笔记
《
算法导论
》第六章----优先级队列(代码实现+部分练习)
“------《
算法导论
》 我的代码实现与算导中关于最大优先级队列的支持操作有出入,我
·
2015-11-11 01:54
算法导论
二叉堆(最小堆)(数据结构与算法分析的代码实现)
这样的树称为完全二叉树” “因为完全二叉树很有规律,所以可以用一个数组表示而不需要使用链” 上面两句是摘自《数据结构与算法分析》 书中代码的上滤和下滤的实现比
算法导论
的好,
算法导论
通过递归,每一次都交换不合适的节点
·
2015-11-11 01:51
数据结构与算法
二叉查找树(数据结构与算法分析代码)
所以我参考了《
算法导论
》的insert函数(非递归)。 PS:有一些函数没有写。。。。注释的地方为原书private成员insert函数。。。。。 PS: 之前搞错了书本的代码。。。。
·
2015-11-11 01:49
数据结构与算法
STL之顺序容器适配器(队列的循环数组实现)
··如果按照Vector,或者List的基础上去做就不用担心队列会满····这是按照教材、《数据结构与算法分析》、《
算法导论
·
2015-11-11 01:46
STL
【经典算法】——KMP,深入讲解next数组的求解
我觉得网上很多帖子都说的不是很清楚,总感觉没有把那层纸戳破,后来翻看
算法导论
,32章 字符串匹配虽然讲到了对前后缀计算的正确性,但是大量的推理证明不大好理解,没有与程序结合起来讲。
·
2015-11-11 01:11
ext
【HDU2224】The shortest path(双调欧几里得dp)
算法导论
上一道dp,挺有趣的。于是就研究了一阵。 dp(i, j)代表从左边第一个点到第i个点与从从左边最后一个点(即为第一个点)到j点的最优距离和。于是找到了子状态。
·
2015-11-11 01:57
Path
如果你是合格的程序员或者你认为自己是计算机科学家
你应该做如下的事情: 1,你学的第一门语言应该是C++,第二门是汇编 2,你应该对数学的掌握不差于数学专业的比较差的学生,对于数论那些东西你也应该会 3,你应该读过
算法导论
·
2015-11-11 01:11
程序员
算法导论
笔记(四)算法分析常用符号
♨ {\color{Blue} f\left ( n \right )= \Theta \left ( g\left ( n \right ) \right )} LaTeX 存在正常数、和,使任意,有。 其实是一个集合:。只是通常也写成标题那样而已。 ♨ 存在正常数和,使任意,有。 强于,即。 ♨
·
2015-11-11 01:35
算法导论
算法导论
笔记(三)冒泡排序
冒泡排序 重复走访要排序的数列,比较相邻两个元素,如果顺序错误就交换,直到该数列无需再交换为止。 升序冒泡 void BubbleSorting(int arr[], int len) { if (len < 1) throw "Param is wrong. Length is not correct.";
·
2015-11-11 01:34
冒泡排序
算法导论
笔记(一) 插入排序
插入排序: 插入排序属于原地排序(sorted in place),使用的是增量(incremental)方法。 排序从第二个元素开始遍历。在排好序的子数组A[1 .. j -1]中,将元素A[j]插入,形成排好序的子数组A[1 .. j];然后,重复此操作,直到整个数组有序。 使用for循环实现的升序插入排序: void insertion_sort_asc(int
·
2015-11-11 01:33
插入排序
上一页
61
62
63
64
65
66
67
68
下一页
按字母分类:
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
其他