❶ 计算机算法设计与分析的内容简介
《计算机算法设计与分析(第3版)》为普通高等教育“十一五”国家级规划教材,是计算机专业核心课程“算法设计与分析”教材。全书以算法设计策略为知识单元,系统介绍计算机算法的设计方法与分析技巧。主要内容包括:算法概述、递归与分治策略、动态规划、贪心算法、回溯法、分支限界法、随机化算法、线性规划与网络流、NP完全性理论与近似算法等。书中既涉及经典与实用算法及实例分析,又包括算法热点领域追踪。
为突出教材的可读性和可用性,章首增加了学习要点提示;章末配有难易适度的习题,分为算法分析题和算法实现题两部分;配套出版了《算法设计与实验题解》;并免费提供电子课件和教学网站服务。
❷ 程序设计算法讨论:阶乘近似公式斯特林公式如何简化了运算
从计算理论上应该没有优势,n!与a^n同阶。
不过数值上,a^n可以在logn次折半平方后求出来,斯特林公式要优很多。
❸ 算法设计与分析习题解答(第2版)的目录
第1章算法引论
习题1-1 实参交换
习题1-2 方法头签名
习题1-3 数组排序判定
习题1-4 函数的渐近表达式
习题1-5 O(1)和O(2)的区别
习题1-7 按渐近阶排列表达式
习题1-8 算法效率
习题1-9 硬件效率
习题1-10 函数渐近阶
习题1-11 n!的阶
习题1-12 平均情况下的计算时间复杂性
算法实现题1-1 统计数字问题
算法实现题1-2 字典序问题
算法实现题1-3 最多约数问题
算法实现题1-4 金币阵列问题
算法实现题1-5 最大间隙问题
第2章 递归与分治策略
习题2-1 Hanoi塔问题的非递归算法
习题2-2 7个二分搜索算法
习题2-3 改写二分搜索算法
习题2-4 大整数乘法的O(n1Og(3/2))算法
习题2-5 5次7//3位整数的乘法
习题2-6 矩阵乘法
习题2-7 多项式乘积
习题2-8 不动点问题的O(1O9n)时间算法.
习题2-9 主元素问题的线性时间算法
习题2-10 无序集主元素问题的线性时间算法
习题2-11 O(1)空间子数组换位算法
习题2-12 O(1)空间合并算法
习题2-13 n段合并排序算法
习题2-14 自然合并排序算法
习题2-15 最大值和最小值问题的最优算法
习题2-16 最大值和次大值问题的最优算法
习题2-17 整数集合排序
习题2-18 第k小元素问题的计算时间下界”
习题2-19 非增序快速排序算法
习题2-20 随机化算法
习题2-21 随机化快速排序算法
习题2-22 随机排列算法”
习题2-23 算法qSort中的尾递归
习题2-24 用栈模拟递归
习题2-25 算法se1ect中的元素划分
习题2-26 O(nlogn)时间快速排序算法
习题2-27 最接近中位数的k个数
习题2-28 X和y的中位数
习题2-29 网络开关设计
习题2-32 带权中位数问题
习题2-34 构造Gray码的分治算法
习题2-35 网球循环赛日程表
算法实现题2-1 输油管道问题(习题2-3O)
算法实现题2-2 众数问题(习题2-31)
算法实现题2-3 邮局选址问题(习题2-32)
算法实现题2-4 马的Hami1tOn周游路线问题(习题2-33)
算法实现题2-5 半数集问题
算法实现题2-6 半数单集问题
算法实现题2-7 士兵站队问题
算法实现题2-8 有重复元素的排列问题
算法实现题2-9 排列的字典序问题
……
第3章 动态规划
第4章 贪心算法
第5章 回溯法
第6章 分支限界法
第7章 概率算法
第8章 NP完全性理论
第9章 近似算法
第10章算法优化策略
第11章 在线算法设计
❹ 求《计算机图形学》(项志刚)和《算法设计与分析》(第2版)的总结
计算机图形学我没学过,但学过算法设计与分析。挺难的,最好你还是从一开始就好好学吧,不然上完了发现什么都不知道,不过那个课考试好办。因为内容是一些编程思想,很难考核。
就《算法设计与分析》这门,在进入正式内容之前,会讲一些基础概念和介绍算法复杂度的分析,如时间复杂度、空间复杂度,如何评价一个算法的优劣。这个内容虽然数据结构里讲过,但在这门学科里讲得要系统深入一些。
然后就是会讲到一些经典的算法思想,比如递归和分治策略、贪心算法、回溯法、分支限界法、随机化算法等等,每个种算法是教给你一种策略、一种思想,其实只要这里的两三种思想深化到你的头脑中了,对你的编程是很有帮助的。
这门课以讲算法思想为主,另外也会介绍一些相关内容,比如动态规划、线性规划、网络流什么的,还有NP完全理论与近似算法。
❺ 求计算方法、算法分析资料
流体网络算法综述
一 引 言
网络理论是拓扑数学分支之一—图论的重要内容。它是一门既古老而又年轻的科学,在图论基础上研究网络一般规律和网络流问题各种优化理论和方法的学科,是运筹网络理论学的一个分支。网络是用节点和边联结构成的图,表示研究诸对象及其相互关系,如铁路网、电力网和通信网等。网络中的节点代表任何一种流动的起点、运转点和终点(如车站、港口、城镇、计算机终端和工程项目的事件等)。在网络中每条边上赋予某个正数,称为该边的权,它可以表示路程、流量、时间和费用等。建立网络的目的都在于把某种规定的物质、能量或信息从某个供应点最优地输送到另一个需求点去。例如,在管道网络中要以最短的距离、最大的流量和最小的费用把水、石油或天然气从供应点送到用户那里。流体网络理论也在集中空调网络、供水、供气、供热网络矿井通风网络等等中有重要的理论应用,流体网络的算法研究也就有着不可缺少的重要作用。
二 算法综述
1 网络分流
1.1网络分流预处理
已知有向流体网络 ,设一虚拟的节点 ,我们把它定义为基点,连接基点和网络源汇点的虚拟分支为:
此时网络变成: , 。分支 对应的流量、流阻和阻力分别用 、 和 表示,并有:
式中, 、 、 分别为包括虚拟节点和虚拟分支在内的网络分支对应的流量、流阻和阻力集合。
有关虚拟分支的主要参数规定如下:
1)流量等于与之相连的网络入边或出边的流量;
2)阻力等于基点 的压能与分支的另一节点 的压能之差,基点的位置及其压能值均可任意设置;
3)流阻值的大小按照分支阻力定律计算,但是当虚拟分支阻力是0,而且流阻又位于分母时,流阻取无穷大。
2 流体网络的基本定律
2.1 质量守恒定律
(1)狭义的质量守恒定律(亦称节点质量守恒定律)
在单位时间内,任一节点流入和流出的流体质量的代数和为零。如果令流出为正、流入为负,则节点质量守恒定律可以写成:
式中, 和 分别为分支 和 的流体密度;
和 分别为分支 和 的流量;
和 分别是节点 的出边 和入边 。
当密度变化可以忽略不计时,上式可写为:
即流量平衡定律。该定律表明:对网路中的任一节点,流进的流量等于流出的流量。
(2)广义质量守恒定律
单位时间内,任一有向割集对应的分支流量的代数和等于0。割集流量平衡方程的矩阵表示是:
式中, 为有向割集矩阵及其元素值; 为割集数。
2.2 能量守恒定律
在任一闭合回路 上所发生的能量转换的代数和为零。即
式中, 为分支 的阻力,当分支与回路方向一致时, 取正号, 、当分支与回路方向相反时, 取负号,仍是 ;
为回路 上的流体机械动力,如风机、泵等等,当回路上的动力在回路内克服阻力做功时, 、反之,如果所属的动力在回路内起阻力作用,则有, ;
为回路 上的自然风压、火风压等等,同样,如果自然风压、火风压在回路中克服阻力做功, 、反之, 。我们把 和 统称为附加阻力,并记为 。
当回路上既无流体机械动力又无自然风压或火风压时,上式可写为: ,即阻力平衡定律。该定律表明:在任一回路上,不同方向的流体,它们的阻力必定相等。
2.3 阻力定律
流体在管路中流动时,其阻力(习惯上也叫压力损失、能量损失、压降等等)表达式为
式中, 为分支的阻力值;
为分支的流阻值;
为分支的流量值;
为流态因子,取决于流体的流动状态,层流时取1,完全紊流取2,过渡状态取1~2的中间值。
3 网络分流算法
3.1 网络分流算法综述
当流体网络中所有的流阻为已知,并已知网络的总流量、或已知回路的附加阻力,求所有分支流量的过程叫做网络分流,也称网络解算。
网络解算可分为:解析法、图解法、物理相似模拟法、数值方法。数值法属于近似法,是目前研究分流的主要手段。从计算数学的角度看,数值方法可分为三类:斜量法、迭代法和直接代入法。
3.2 Barczyk法
网络解算的基本方程组如下:
式中, 为分支流量;
为回路阻力平衡方程,简记成 ; 为基本关联矩阵元素;
为基本回路矩阵元素。
误差判别式是:
式中, 是流量误差限; 是阻力误差限。
如果误差满足要求,则解算结束;否则还要继续进行迭代。
归纳上述分析,Barczyk法的程序流程是:
① 已知: 、 、 、 , ;
② 拟定树支和余支,并把余支作为基准分支: 、 ;
③ 求回路矩阵: ;
④ 计算Jacobi矩阵及其逆阵: 、 ;
⑤ 计算阻力矩阵: ;
⑥ 求余支流量修正值矩阵: ;
⑦ 修正余支流量: ;
⑧ 修正树支流量: ;
⑨ 误差验算: ,满足精度程序结束;否则, ,转到(4)继续迭代;
3.2 Cross法
Cross算法亦称Scott-Hinsley法。在Barczyk法中,如果回路选择的合理,可以使Jacobi矩阵除主对角线外其余元素为0,即:
上式表明, 个回路阻力平衡方程中每一个回路仅含有一个基准分支,显然当回路 时,上式会成立,并有:
将 代入上式,有:
如果令 ,则有回路流量校正值公式为:
式中, 为第 个基本回路、第 次迭代时的回路流量修正值, ; 为迭代次数, ; 为基本回路矩阵第 行,第 列元素值; 为回路第 列对应的分支流阻; 为回路第 列对应的分支在第 次迭代时的初始流量值; 为第 个基本回路的附加阻力。
回路分支流量校正式为:
上式的第二行是为了加快收敛速度所采取的算法,也就是用用已经修正过的流量值计算后面回路的流量修正值。
Cross法程序流程是:
(1) 已知: 、 、 、 , ;
① 拟定树及余树: 、 ;
② 拟定基本回路矩阵: ;
③ 计算回路流量修正值: ;
④ 修正回路流量: ;
⑤ 误差验算,满足精度程序结束;否则, ,转到(4)继续迭代。
Cross法与Barczyk法的主要区别如表8-1所示。
表8-1 Barczyk法与Cros法的主要区别
方法与内容 Barczy法 Cross法
Jacobi矩阵非主对角线元素 不一定为0 一定为0
流量修正值 每一基准分支都有自己的流量修正值 同一回路内的分支具有相同的流量修正值
流量修正 基准分支流量修正值只对基准分支进行修正,非基准分支流量根据节点流量守恒定律确定 用同一流量修正值对回路内的所有分支进行修正
4分流算法中的一些具体问题
4.1 基准分支的拟定与迭代处理
以 为权对分支进行排序,将带有附加阻力的分支排在最后,然后找最小树,将余支作为基准分支,从数学上已经证明这将加快迭代的收敛速度。如果迭代20次仍然不收敛,则以迭代后的分支流量值进行重新排序,再迭代,将加快收敛速度。
4.2 流体机械特性曲线的处理
一般用下面的二次曲线拟合流体机械特性曲线,而且认为流体机械的工况点在合理的工况区间内,如图8-2的实线部分。
式中, 为流体机械所在分支的流量; 、 、 为方程常数。
上式中,如果流体机械作用的方向与流体流动方向相同, ,流体机械克服流体流动阻力做功;反之, ,流体机械成为流体流动的阻力。
如果分支流量的初始值与其真值之间的偏差较大,则有可能出现工况点落在特性曲线的另一侧,最终导致假收敛。从软件的可视化角度、从面向现场工程技术人员的角度出发,网络分流时的初始流量拟定不应由人工完成,而计算机自动进行初始流量拟定时,如果采用二次曲线拟合,发生假收敛的机率会更多。
为了避免假收敛,同时,更为重要的是为了能够模拟流体机械在不稳定工作区(特性曲线的驼峰段)的工况、模拟流体机械作为流体流动的阻力时的状况,作者采用5次方程拟合流体机械特性曲线〔11〕,如图8-3所示,方程如下:
图8-1 图8-2
4.3 网络简化
网络简化是把一个子网简化成1条分支,简化分支流量修正过程就是子网分流过程。在C 面向对象程序设计上,简化分支由普通分支和流体网络共同派生,并采用虚拟技术“virtual”,该过程将自动实现。
三 总 结
目前流体网络的理论和应用在不断发展,出现了具有增益的流、多终端流、多商品流以及网络流的分解与合成等新课题。网络流的应用已遍及通讯、运输、电力、工程规划、任务分派、设备更新以及计算机辅助设计等众多领域。
流体网络理论在生产生活中具有不可缺少的重要地位,。
❻ 计算机科学与技术相关书籍
就计算机科学与技术而言,我知道的《算法导论》这本书挺合适的,这里面涵盖了计算机的几乎所有的算法,对于学习计算机编程的人而言十分重要。学懂了这本书,就可以应付很多的考试和比赛。
附:
目录(Table of Contents)
前言(Preface)
第一部分(Part I) 基础(Foundations)
第一章 计算中算法的角色(The Role of Algorithms in Computing)
第二章 开始(Getting Started)
第三章 函数的增长率(Growth of Functions)
第四章 递归(Recurrences)
第五章 概率分析与随机化算法(Probabilistic Analysis and Randomized Algorithms)
第二部分(Part II) 排序与顺序统计(Sorting and Order Statistics)
第六章 堆排序(Heapsort)
第七章 快速排序(Quicksort)
第八章 线性时间中的排序(Sorting in Linear Time)
第九章 中值与顺序统计(Medians and Order Statistics)
第三部分(Part III) 数据结构(Data Structures)
第十章 基本的数据结构(Elementary Data Structures)
第十一章 散列表(Hash Tables)
第十二章 二叉查找树(Binary Search Trees)
第十三章 红-黑树(Red-Black Trees)
第十四章 扩充的数据结构(Augmenting Data Structures)
第四部分(Part IV) 高级的设计与分析技术(Advanced Design and Analysis Techniques)
第十五章 动态规划(Dynamic Programming)
第十六章 贪婪算法(Greedy Algorithms)
第十七章 分摊分析(Amortized Analysis)
第五部分(Part V) 高级的数据结构(Advanced Data Structures)
第十八章 B-树(B-Trees)
第十九章 二项式堆(Binomial Heaps)
第二十章 斐波纳契堆(Fibonacci Heaps)
第二十一章 不相交集的数据结构(Data Structures for Disjoint Sets)
第六部分(Part VI) 图算法(Graph Algorithms)
第二十二章 基本的图算法(Elementary Graph Algorithms)
第二十三章 最小生成树(Minimum Spanning Trees)
第二十四章 单源最短路径(Single-Source Shortest Paths)
第二十五章 全对的最短路径(All-Pairs Shortest Paths)
第二十六章 最大流(Maximum Flow)
第七部分(Part VII) 精选的主题(Selected Topics)
第二十七章 排序网络(Sorting Networks)
第二十八章 矩阵运算(Matrix Operations)
第二十九章 线性规划(Linear Programming)
第三十章 多项式与快速傅里叶变换(Polynomials and the FFT)
第三十一章 数论算法(Number-Theoretic Algorithms)
第三十二章 字符串匹配(String Matching)
第三十三章 计算几何学(Computational Geometry)
第三十四章 NP-完备性(NP-Completeness)
第三十五章 近似算法(Approximation Algorithms)
第八部分(Part VIII) 附录:数学背景(Mathematical Background)
附录A 求和(Summations)
附录B 集合,等等。(Sets, Etc.)
附录C 计数与概率(Counting and Probability)
参考文献(Bibliography)
索引(Index)
❼ 求C++和数据结构经典算法。
给你个我整理的列表吧,这些书上面的题目都做出来,直接去谷歌、苹果、Facebook找工作吧。
难度系数3颗星
《挑战编程》http://book.douban.com/subject/3879470/
《算法竞赛入门经典》http://book.douban.com/subject/4138920/
《程序设计实践》http://book.douban.com/subject/1173548/
《算法之道》http://book.douban.com/subject/4249686/
难度系数4颗星
《计算机算法的设计与分析》http://book.douban.com/subject/1683278/
《算法导论》http://book.douban.com/subject/1885170/
《编程珠玑》http://book.douban.com/subject/1230206/
《编程珠玑2》http://book.douban.com/subject/3234692/
《编程之美》http://book.douban.com/subject/3004255/
《算法设计手册》The Algorithm Design Manual
《算法设计与分析基础》http://book.douban.com/subject/1173877/
《算法引论》http://book.douban.com/subject/1436134/
《算法.Sedgewick》 http://book.douban.com/subject/1143801/
难度系数5颗星
《算法艺术与信息学竞赛》http://book.douban.com/subject/1154204/
《具体数学》http://book.douban.com/subject/1390010/
《计算机程序设计艺术》http://book.douban.com/subject/1418402/
《计算机程序的构造和解释》http://book.douban.com/subject/1148282/
《高级数据结构》http://book.douban.com/subject/3328585/
专题类的算法
《随机算法》http://book.douban.com/subject/3269796/
《近似算法》http://book.douban.com/subject/1823807/
《如何求解问题:现代启发式方法》http://book.douban.com/subject/1232071/
《组合优化》http://book.douban.com/subject/1823805/
《网络流》http://book.douban.com/subject/1316052/
《计算几何》http://book.douban.com/subject/1445320/
《概率与计算》http://book.douban.com/subject/2056370/
《柔性字符串匹配》http://book.douban.com/subject/2038862/
《应用密码学》http://book.douban.com/subject/1088180/
数学类,太多,少推荐几本
《怎样解题》http://book.douban.com/subject/1013762/
《陶哲轩教你学数学》http://book.douban.com/subject/3921816/
《什么是数学》http://book.douban.com/subject/1320282/
《图论》http://book.douban.com/subject/1921943/
《组合数学》http://book.douban.com/subject/1231452/
《计数组合学》http://book.douban.com/subject/1193832/
❽ 推介一本对培养写算法能力有帮助的书,要切合基础的
新华书店文轩网搜索的,供参考:
C 语言算法速查手册
作者:程晓旭 等编着
出版:人民邮电出版社 出版日期:2009年10月
本书用C语言编写了科研和工程中最常用的166个算法,这些算法包括复数运算、多项式的计算、矩阵运算、线性代数方程组的求解、非线性方程与方程组的求解、代数插值法、数值积分法、常微分方程(组)初值问题的求解、拟合与逼近、特殊函数、极值问题、随机数产生与统计描述、查找、排序、数学变换与滤波等。同时结合这些算法列举了将近100个应用实例,对其进行验证和分析。 本书适用于C语言算法的初学者,也可以作为高等院校师生的学习参考用书。
妙趣横生的算法(C语言实现)(配光盘)
作者:杨峰 编着
出版:清华大学出版社 出版日期:2010年04月
本书理论与实践相结合,旨在帮助读者理解算法,并提高C语言编程能力,培养读者的编程兴趣,并巩固已有的C语言知识。全书分为2个部分共10章,内容涵盖了编程必备的基础知识(如数据结构、常用算法等),编程实例介绍,常见算法和数据结构面试题等。本书最大的特色在于实例丰富,题材新颖有趣,实用性强,理论寓于实践之中。通过本书的学习,可以使读者开阔眼界,提高编程的兴趣,提高读者的编程能力和应试能力。 本书附带1张光盘,内容为本书源代码和作者为本书录制的5.5小时多媒体教学视频。本书可作为算法入门人员的
算法设计与分析:C++语言描述
作者:
出版:电子工业出版社2 出版日期:2006年06月
本书内容分为3部分:算法和算法分析,算法设计策略及求解困难问题。第1部分介绍问题求解方法、算法复杂度和分析、递归算法和递推关系;第2部分讨论常用的算法设计策略:基本搜索和遍历方法、分治法、贪心法、动态规划法、回溯法和分枝限界法;第3部分介绍NP完全问题、随机算法、近似算法和密码算法。书中还介绍了两种新的数据结构:跳表和伸展树,以及它们特定的算法分析方法,并对现代密码学做了简要论述。本书结构清晰、内容翔实、逻辑严谨、深入浅出。书中算法有完整的C++程序,程序构思精巧,且有详细注释,所有程序都已
算法:C语言(第1~4 部分)
作者:(美)塞奇威克 着
出版:机械工业出版社 出版日期:2009年10月
本书细腻讲解计算机算法的C语言实现。全书分为四部分,共16章。包括基本算法分析原理,基本数据结构、抽象数据结构、递归和树等数据结构知识,选择排序、插入排序、冒泡排序、希尔排序、快速排序方法、归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊用途的排序方法,并比较了各种排序方法的性能特征,在进一步讲解符号表、树等抽象数据类型的基础上,重点讨论散列方法、基数搜索以及外部搜索方法。书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习,还包含大量简洁的实现将理论和实践成功地相结合
数据结构与算法C#语言描述
作者:(美)麦克米伦(McMillan,M) 着;吕秀锋,崔睿 译
出版:人民邮电 出版日期:2009年05月
本书是在.NET框架下用C#语言实现数据结构和算法的第一本全面的参考书。本书介绍的方法非常实用,采用了时间测试而非大O表示法来分析算法性能。内容涵盖了数据结构和算法的基本原理,涉及数组、广义表、链表、散列表、树、图、排序搜索算法以及更多概率算法和动态规则等高级算法。此外,书中还提供了.NET框架类库中的C#语言实现的数据结构和算法。 本书适合作为C#数据结构课程的教材,同时也适合C#专业人士阅读。
❾ 算法设计的本书特点
以各种算法设计技术(如贪心法、分治策略、动态规划、网络流、近似算法、随机算法等)为主线来组织素材,突出了算法设计的思想和分析的基本原则,为从事实际问题的算法设计与分析工作提供了清晰的、整体的思路和方法。
本教材内容非常丰富,不但深入系统地阐述了算法设计与分析的理论,而且给出了大量的典型范例和参考文献。
本教材以算法为主线来处理算法与数据结构的关系。这种安排突出了算法设计的中心思想,避免了与数据结构课程在内容上的重复,更加适合于国内的教学计划。
本教材的叙述和选材非常适合教学。内容由浅入深,由具体到抽象,从算法设计技术与分析方法自然过渡到计算复杂性理论,选配了大量难度适当的练习,并给出求解范例。