从算法到程序-破解程序设计的奥秘

本书特色

[

  数学计算为先导,组合优化为主线。
  算法理论指导下的编程实践码。
  void型指针引领纯c通用代码
  48个应用问题编程实践全面体验算法理论的力量。
  光盘提供完整源代码。
  可以通过xu_zishan@163.com与作者沟通。

]

内容简介

[

  本书第1章讨论算法设计、分析的基本概念,第2章讨论算法设计中*常用的几个数据结构,包括链表、栈、队列、二叉搜索数、散列表等。第3章讨论了算法设计的两个基本策略:渐增策略与分支策略。这3章的内容,为读者阅读本书以后的内容奠定了基础。第4章讨论了几个代数计算的基本问题及其算法,包括矩阵运算、解线性方程组、多项式运算等。第5章讨论了几个关于计算几何的基本问题及其算法,包括线段的相交判断、平面点集的凸包计算、*邻近点对问题等。第6章讨论了关于整数运算的基本问题,包括大整数的表示与运算、*大公约数计算、模运算、素数判定及整数因数分解等。这3章内容为读者深入学习解决各种复杂问题奠定了解决数学计算问题的基础。第7~9章分别用回溯策略、动态规划策略及贪婪策略研究、解决计算机应用面临的*普遍*典型的问题组合优化问题。第10章讨论图的搜索算法及其应用。包括深度优先搜索、拓扑排序、有向图的强连通分支计算、关节点计算、广度优先搜索、网络*大流及二部图的*大匹配等问题。对所有的的经典算法及数据结构,书中给出c语言的实现函数,形成一个通用的函数库,并详尽地加以解析。伴随各种算法的设计、分析及程序实现,书中给出了丰富多彩的应用问题及其解决方案的讨论,并给出了完整的程序代码。所有程序代码都经过反复调试,第十一章介绍这些代码的使用方法。所有代码都以随书光盘的方式提供给读者方便使用。本书无论是对初学算法及程序设计入门大学生读者还是对已经在职场打拼多年的程序员并有着提高自身理论修养及技术水平愿望的读者都有着开卷有益的意义。

]

作者简介

[

  徐子珊 
男,副教授。数学专业出身,长期从事高校数学、算法和程序设计教学,深受学生喜爱。曾担任ACM/ICPC竞赛教练,指导过多届ITAT竞赛。2003年在复旦大学计算机科学系做国内访问学者,师从国内算法界前辈朱洪教授。2010年曾出版《算法设计、分析与实现》一书,受到读者好评。该书远销中国台湾地区,曾有多人来函索要书中相关代码。2012年出版该书修订版。

]

目录

第1章计算问题1.1计算问题及其算法1.1.1计算问题及其描述1.1.2算法及其描述1.1.3伪代码的使用约定1.1.4算法分析1.1.5算法运行时间的渐近表示1.2数据结构1.2.1什么是数据结构1.2.2数据结构对算法效率的影响1.2.3字典与字典操作1.3程序设计1.3.1算法与程序1.3.2数据类型的抽象与代码通用性1.4数据的输入输出1.4.1应用问题1.4.2标准输入输出1.4.3文件输入输出1.5计数问题1.5.1简单模拟1.5.2加法原理和乘法原理1.5.3整数序列第2章数据结构基础2.1线性表2.1.1线性表的链表表示2.1.2对链表的操作2.1.3链表的程序实现2.1.4链表应用2.2栈2.2.1栈的概念及其链表实现2.2.2栈的程序实现2.2.3栈的应用2.3队列2.3.1队列的概念及其链表实现2.3.2队列的程序实现2.3.3队列的应用2.4二叉搜索树2.4.1二叉树及其在计算机中的表示2.4.2二叉搜索树2.4.3二叉搜索树的查询操作2.4.4二叉搜索树中元素的增删2.4.5红?黑树及其性质2.4.6红?黑树的操作2.4.7红?黑树的程序实现2.4.8二叉搜索树的应用2.5散列表2.5.1直接寻址表与散列表2.5.2用拉链解决冲突2.5.3散列表的程序实现2.5.4散列表的应用第3章基本算法设计策略3.1渐增型算法3.1.1有序序列的合并问题 3.1.2序列的划分问题 3.2分治算法3.2.1归并排序算法3.2.2快速排序算法3.2.3序统计与选择问题3.3排序问题的讨论3.3.1排序的性质3.3.2比较型排序算法的时间复杂度3.3.3应用3.4堆与基于堆的优先队列3.4.1堆的概念及其创建3.4.2基于二叉堆的优先队列3.4.3应用第4章代数计算4.1矩阵及其计算4.1.1矩阵与向量4.1.2矩阵的运算4.1.3矩阵的性质4.1.4矩阵的程序实现4.2矩阵的lup分解4.2.1lup分解法概述4.2.2lu分解4.2.3计算lup分解4.2.4程序实现4.3解线性方程组4.3.1前代法和回代法4.3.2用lup分解计算矩阵的逆4.3.3程序实现4.4多项式及其计算4.4.1多项式及其表示4.4.2多项式的运算4.4.3fft4.4.4程序实现4.5应用4.5.1多项式的泰勒展开式4.5.2完善序列4.5.3函数的有理式逼近第5章计算几何5.1线段的性质5.1.1叉积及其应用5.1.2向量的极角5.1.3程序实现5.2判断是否存在线段相交5.2.1算法描述与分析5.2.2程序实现5.3求凸壳5.3.1graham扫描5.3.2程序实现5.4求*邻近点对5.4.1算法描述与分析5.4.2程序实现5.5应用5.5.1光导管5.5.2*小边界矩形5.5.3德克萨斯一日游第6章数论算法6.1整数的表示6.1.1整数的表示6.1.2整数的算术运算6.1.3程序实现6.1.4应用6.2初等数论的概念6.3*大公约数6.3.1euclid算法6.3.2euclid算法的运行时间6.3.3euclid算法的迭代版本6.3.4程序实现6.3.5应用6.4模运算6.4.1模加法和乘法6.4.2解模线性方程6.4.3元素的幂6.4.4应用6.5素数检测6.5.1伪素数检测6.5.2miller?rabin的随机素数检测6.5.3miller?rabin素数检测的错误率6.5.4程序实现6.6整数分解6.6.1pollard的ρ探索法6.6.2程序实现6.6.3应用第7章回溯策略7.1组合问题7.1.1组合问题的例子7.1.2组合问题的形式化描述7.2组合问题的回溯算法7.2.1解空间的树状结构7.2.2解决组合问题的回溯算法7.2.3回溯算法的框架7.3子集树和排列树7.3.1子集树问题7.3.2排列树问题7.3.3应用7.4用回溯算法解决组合优化问题7.4.1组合优化问题7.4.2用回溯策略解决组合优化问题7.4.3应用第8章动态规划策略8.1组装线调度问题8.1.1问题描述8.1.2算法设计与分析8.1.3应用——牛牛玩牌8.2*长公共子序列8.2.1问题描述8.2.2算法设计与分析8.2.3程序实现8.2.4应用8.30?1背包问题8.3.1问题描述8.3.2算法设计与分析8.3.3程序实现8.3.4应用8.4带权有向图中任意两点间的*短路径8.4.1问题描述8.4.2算法设计与分析8.4.3程序实现8.4.4应用——牛牛聚会第9章贪婪策略9.1活动选择问题9.1.1算法描述与分析9.1.2程序实现9.1.3贪婪算法与动态规划9.1.4应用——海岸雷达9.2huffman编码9.2.1算法描述与分析9.2.2应用——r叉huffman树9.2.3程序实现9.3*小生成树9.3.1算法描述与分析9.3.2程序实现9.3.3应用——北方通信网9.4单源*短路径问题9.4.1算法描述与分析9.4.2程序实现9.4.3应用——西气东送第10章图的搜索算法10.1深度优先搜索10.1.1算法描述与分析10.1.2程序实现10.1.3有向无圈图的拓扑排序10.1.4应用——全排序10.2有向图的强连通分支10.2.1算法描述与分析10.2.2程序实现10.2.3应用——亲情号10.3无向图的双连通分支10.3.1算法描述与分析10.3.2程序实现10.3.3应用——雌雄大盗10.4广度优先搜索10.4.1算法描述与分析10.4.2程序实现10.4.3应用——攻城掠地10.5流网络与*大流问题10.5.1算法描述与分析10.5.2程序实现10.5.3应用第11章代码实验11.1头文件清单11.1.1基本应用类函数11.1.2数据结构类11.1.3代数记算类函数11.1.4计算几何类函数11.1.5数论计算类函数11.1.6回溯搜索类函数11.1.7动态规划类函数11.1.8贪婪策略类函数11.1.9图的搜索类函数11.2实验平台的搭建11.2.1集成开发环境的安装11.2.2实验项目的建立11.3应用问题程序的运行实例11.3.1加载程序文件11.3.2调试程序11.3.3各应用问题加载文件清单11.4函数库的扩展11.4.1向已有的源文件中添加新函数11.4.2创建新的源文件参考文献

封面

从算法到程序-破解程序设计的奥秘

书名:从算法到程序-破解程序设计的奥秘

作者:徐子珊 著

页数:556

定价:¥59.0

出版社:清华大学出版社

出版日期:2013-03-01

ISBN:9787302304746

PDF电子书大小:84MB

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注