出版时间:2006-6 出版社:北京理工大学出版社 作者:张文双 页数:259 字数:394000
Tag标签:无
前言
在联合国教科文组织的倡导下,自1989年至今国际信息学奥林匹克学科竞赛(IOI)已经举办了21届。在世界各国青少年优秀选手竞展雄姿的舞台上,中国代表队战绩辉煌。与.IOI同步的全国青少年信息学奥林匹克分区联赛(NOIP)的开展,提高了我国青少年的科学素养,促进了信息科技活动的普及,选拔出了大量的计算机拔尖人才,受到了众多信息学爱好者的关注。目前在竞赛中多数选手选用Pascal语言。Pascal语言功能强大,数据类型丰富,程序结构严谨,便于阅读和理解。应用Pascal语言程序设计求解问题,核心是数据结构和算法的整合。因此,系统地研究数据结构和算法,将会使选手的编程技能如虎添翼。在目前的图书市场上,有关Pascal语言数据结构和算法的竞赛辅导教材极少,而且其中一些是写给大学生的,不适合中小学生阅读。为了帮助中小学生学习数据结构和算法知识,特聘请具有丰富竞赛辅导经验的一线教师和曾在国际信息学奥赛中获得金牌的优秀选手共同编写了这本书。本书是Pascal语言(小学版)和Pascal语言(中学版)的后继教材,内容紧扣信息学竞赛大纲,结构严谨,语言简练。希望本书能为提高读者竞赛技艺奉献绵薄之力。本书第1版自2006年出版至今,受到广大读者的关注和厚爱,在此深表谢意。近年来,:FreePascal语言已替代turboPascal语言成为我国青少年信息学奥林匹克竞赛(NOI)和分区联赛(NOIP)的复赛语言之一。为了适应竞赛的需要,我们对书中内容进行了修订。第2版中增加了队列、栈、数据结构的综合应用和贪心法4章,所有的例题和习题均能在FreePascal环境中运行。这本书的内容共分14章,主要内容包括:数据结构与算法的引入、队列、栈、树、图、数据结构的综合应用、排列和组合、、高精度计算、排序法、搜索策略、分治策略、贪心法、动态规划和算法的综合应用等。具体编写分工如下:第l、6章由李文编写,第2章由安文君编写,第3章由刘萍萍编写,第4章由张文双编写,第5章由王学红编写,第7章由战久成编写,第8、13章由郭连凤编写,第9章由周敏编写,第10章由王宇编写,第11章由杨伟编写,第12章由王亚平编写,第14章由侯启明编写。全书由张文双统稿审定。由于编者的水平有限,新版中若有疏漏之处,恳请各位读者指正。
内容概要
目前在竞赛中多数选手选用Pascal语言。Pascal语方功能强大,数据类型丰富,程序结构严谨,便于阅读和理解。应用Pascal语言程序设计求解问题,核心是数据结构和算法的整合。因此,系统研究数据结构和算法,编程技能将如虎添翼。 在目前的图书市上,有关Pascal语言数据结构和算法的竞赛辅导教材极少。见到一些是写给大学生,不适合中小学生阅读。为了帮助中小学生学习数据结构和算法知识,特聘请具有丰富竞赛辅导经验的一线教师和曾在国际信息学奥林匹克学科竞赛中获得金牌的优秀选手共同编写了这本书。本书是Pascal语言(小学版)和Pascal语言(中学版)的后继教材,内容紧扣信息学竞赛大纲,结构严谨,语言简练,希望它难为读者提高竞赛技艺奉献绵薄之力。
作者简介
吴文虎,清华大学计算机科学与技术系教授、博士生导师,国际信息学奥林匹克竞赛中国队总教练。 自1989年以来一直担任国际信息学奥林匹克竞赛中国队的总教练,带领中国国家队在国际信息学奥林匹克竞赛中连续15年取得辉煌战绩!
书籍目录
第1章 数据结构与算法的引入 1.1 数据结构的概念 1.2 算法 1.3 建立数学模型 1.4 程序的调试 习题及参考答案第2章 指针和动态数据结构 2.1 指针变量的定义及基本使用 2.2 链表 习题及参考答案第3章 文件 3.1 文本文件的逻辑组织 3.2 文本文件的基本操作 3.3 文本文件应用举例 习题及参考答案第4章 树 4.1 树的概念 4.2 二叉树 4.3 树的存储结构 4.4 树的遍历 4.5 最优二叉树 习题及参考答案第5章 图 5.1 图的概念 5.2 图的遍历 5.3 图的最短路 5.4 最小生成树 5.5 图的应用 习题及参考答案第6章 排列和组合 6.1 加法原理和乘法原理 6.2 排列 6.3 组合 习题及参考答案第7章 高精度计算 7.1 高精度基本计算 7.2 高精度计算的优化 习题及参考答案第8章 排序法 8.1 插入排序 8.2 希尔排序 8.3 选择排序 8.4 冒泡排序 8.5 快速排序 8.6 堆排序 8.7 基数排序(多关键字排序) 8.8 各种内部排序方法的比较 习题及参考答案第9章 搜索策略 9.1 搜索的基本知识 9.2 穷举搜索 9.3 回溯搜索 9.4 广度优先搜索 9.5 分支定界 习题及参考答案第10章 分治策略 10.1 分治原理 10.2 二分法 10.3 递推法的分治处理 习题及参考答案第11章 动态规划 11.1 动态规划的基本思想 11.2 动态规划的进一步讨论 11.3 记忆化搜索的应用 习题及参考答案第12章 算法的综合应用附录 附录1 编译器开关表 附录2 Free Pascal和Turbo Pascal的主要区别
章节摘录
插图:1.2.1 算法的特点计算机算法大体可分为数值计算和非数值计算两大类。比如求若干个数之和、求方程的根、求n!等,都属于数值计算类,而图书检索、按考试成绩排列名次等则属于非数值计算类。无论哪一类算法,也无论算法多么简单或多么复杂,都必须满足以下特点:1.确定性算法的每一步都必须是明确无误的,不能含糊其辞,不能存在歧义(具有二义性或多义性),否则就会使执行者无所适从。如在算法中出现“计算3/0”或“将3或4与x相乘”等是不允许的,原因是前者的计算结果不确定,后者则无法确定究竟是哪个数与x相乘。2.有效性算法中的每一步运算都必须能够在计算机上有效地执行,整个算法执行完毕后必须得到确定的结果。例如求-5的平方根,求所有自然数的和,就无法在计算机上有效地执行。3.有穷性一个算法必须包含有限个操作步骤,即执行若干步之后,算法能够终止,而不能无限地执行下去。当然,这种有穷性还应该在一个合理的范围之内,比如一个算法要执行10000年才能得到结果,尽管它不是无限的,但显然没有什么实际意义。4.输入一个算法可以含有0个或多个输入,用于提供算法执行所需要的外界信息。5.输出设计算法的目的是得到问题的解,所以一个算法应包含一个或多个输出,用于描述问题求解后所得的结果。比如求100个数中最大的数,算法执行完毕应该输出最大的数。的算法
编辑推荐
《数据结构与算法设计:Pascal语言(第2版)》:青少年信息雪奥林匹克竞赛培训教材
图书封面
图书标签Tags
无
评论、评分、阅读与下载