数据结构与算法
文章平均质量分 72
Zyearn
这个作者很懒,什么都没留下…
展开
-
《Algorithms》第4章:Paths in graphs 学习笔记
Chapter 4:paths in graphs本章讨论寻找最短路径的算法。1、The distance between two nodes is the length of the shortest path between them.2、无权图中,用Breadth-first search寻找单源最短路径的伪码(适合有向和无向):3原创 2012-07-05 17:35:16 · 2007 阅读 · 0 评论 -
什么是可计算理论
这个学期刚好上这门课,此课绝对是CS课程中的神课,需要一定的决心和耐心才能啃下来。这篇文章可以说是一篇科普文,争求通俗易懂。可计算理论是计算理论的一个分支,还有两个分支分别是自动机和计算复杂性。这些名词都顾名思义,自动机讲的是计算的模型,比如图灵机,它是由无限长磁带,读写磁头和一些状态转移序列组成;可计算理论,研究的是一个函数(或程序)是不是能被计算,但是什么叫能被计算呢,原创 2013-06-28 14:44:01 · 5485 阅读 · 2 评论 -
基础排序算法总结
首先要理解的几个概念:1. 在原序列中,若Ri = Rj,且i2. 排序可分为:内排序(数据在内存中)和外排序(数据在外存中)。本文重点在一些内排序的思想。不贴代码和细节考虑。1. 插入排序基本思想:每次都将一个待排序的数据元素,按其关键字大小,插入到前面已排好序的一组数据元素中的适当位置上,直到所有数据插入完成。直接插入排序:适用于少量数据元素的简单方法,复杂度O原创 2013-02-20 21:01:21 · 1130 阅读 · 0 评论 -
《Algorithms》第8章:NP完全问题 学习笔记
/** 第0~第8章的全部笔记已经整理在http://zjsblog.com/ALGO/index.html* Algorithms 是一本很经典的算法入门书,希望对朋友们有所帮助*/Chapter 8:NP-完全问题8.1 一些搜索问题:搜索问题定义:一个搜索问题是由一个算法C描述的,以问题实例I和一个可能的解S为输入,运行在关于|I|的多项式原创 2013-02-02 18:31:18 · 13519 阅读 · 3 评论 -
《Algorithms》第7章:Linear programming and reductions 学习笔记
Chapter 7:Linear programming and reductions1、任何一个线性规划问题都将涉及一组变量。我们的目的是找出这组变量的某种赋值,使得其同时满足下面两个条件:满足一组由这些变量构成的线性方程或不等式极大或极小化某个给定的线性目标函数2、举例说明:3、通常,目标函数的极值在可行区域的原创 2013-01-30 20:56:38 · 2013 阅读 · 0 评论 -
《Algorithms》第6章:Dynamic Programming 学习笔记
本章通过了较多个例子来说明动态规划。1、动态规划问题的特征:最优子结构重叠子问题2、动态规划解决问题的方法就是通过解决很多的小问题而解决大问题。因此,动态规划的效率将取决于两个因素:子问题的数量和子问题的解决效率。实际上,动态规划的时间效率就是:子问题的数量*子问题的时间效率。以下是具体例子:3、有向非循环原创 2012-07-30 18:43:22 · 1700 阅读 · 0 评论 -
《Algorithms》第3章:Decompositions of graphs 学习笔记
Chapter 3:Decompositions of graphs1、图有什么应用?解决四色问题时,忽略地图中的次要因素,把四色问题抽象成图论问题解决安排考试问题(需要安排最短的时间考完所有的试,假设有一个学生需要参加两场考试,则这两场考试需分不同的时间段),把每门考试抽象为顶点,把需要参加两门考试的学生抽象成边并连接这两个顶点,则这个问题又变成了四色问题。原创 2012-07-02 19:02:01 · 1283 阅读 · 0 评论 -
《Algorithms》第2章:Divide-and-conquer algorithms 学习笔记
1、2、高斯发现两个复数乘法初看涉及4次实数乘法运算,但实际上可以简化为3次乘法运算。例:(a+bi)(c+di) = ac - bd + (bc+ad)i ,其中bc+ad = (a+b)(c+d) - ac - bd所以只需计算(a+b)(c+d) 、 ac 和 bd。这条原理可以帮助我们实现更好的乘法运算,将n位的x、y分成n/2位长,于是:原创 2012-06-29 15:28:23 · 1288 阅读 · 0 评论 -
《Algorithms》第5章:Greedy Algorithms 学习笔记
Chapter 5:Greedy Algorithms1、Greedy algorithms build up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit.2、每步只看眼前效果最好的做法就是原创 2012-07-12 12:47:14 · 1637 阅读 · 0 评论 -
《Algorithms》第0章:Prologue 学习笔记
1、算法的时间复杂度是我们选择算法的主导要素,但决不是唯一要素。其它考虑的因素还包括:算法对存储空间的需求、算法实现的难度等等。 2、算法复杂度的表示法:here are some commonsense rules that help simplify function by omitting dominated terms:3、Fibon原创 2012-06-28 11:48:13 · 1857 阅读 · 0 评论 -
《Algorithms》第1章:Algorithm with numbers 学习笔记
1、二进制乘法的两个算法:这两个算法本质上是一样的。讲到分治的时候,还会介绍新的算法。2、乘法运算、指数模运算、欧几里得最大公约数:3、欧几里得算法的几个引理:if a >= b, then a mod b if d divides both a and b, and d = ax + by for原创 2012-06-29 15:24:53 · 1160 阅读 · 0 评论 -
二分查找 的一些讨论
一、折半查找版本一:递归/*说明:v为数组,low为数组的下界,high为上界,x为需要查找的元素*/int binsearch(int v[],int low, int high, int x){ int mid = (low+high) / 2; if(x == v[mid]) return mid; if(low >= high) return -1;原创 2012-08-16 19:27:12 · 1032 阅读 · 0 评论