数据结构与算法实习课件共77页PPT资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
程序设计实践和技巧
风格、设计和实现
程序的境界
界面、排错 测试、性能和可扩展性
风格、设计和实现
风格
文件结构、版式、命名、注 释……
程序员的素质 程序的境界
设计和实现
问题求解
数学建模、问题建模 数据结构抽象 算法抽象 效率分析
选择能在合理时间内解决预期规模问题的 简单算法和数据结构
wenku.baidu.com
参考教材
1. Brian W.Kernigham 著,裘宗燕 译,《程序设计实践》, 机械工业出版社,2019年9月。
2. M. H. Alsuwaiyel, Algorithms Design Techniques and Analysis, 电子工业出版社影印,2019年1月。
3. Thomas H.Cormen, Charles E.Leiserson, Ronald L. Rivest, Clifford Stein, Inroduction to Algorithms, MTI Press. 高等教育出版社影印。
算法与程序设计自评自测系统
acm.pku.edu/JudgeOnline 2000多道由浅入深设计数据结构与算法程序设计各个
知识点的竞赛试题
理论课资源
数据结构与算法(信息学院) db.pku.edu/mzhang/DS/(教育网) jpk.pku.edu/pkujpk/course/sjjg/ (公网)
4. Sartaj Sahni, Data Structures, Algorithms, and Applications in C++. 机械工业出版社影印版。
5. 数据结构(用面向对象方法与C++语言描述)第2版, 殷人昆主编, 清华大学出版社,2019年6月.
清华大学信息学院计算机系、软件学院教材 清华考研第一参考书。 learn.tsinghua.edu/learn/courseinfo.jsp?course_id=5012
书号: ISBN 978-70-4-023961
3. 张铭、赵海燕、王腾蛟,《数据结构与算法--学习指 导与习题解析》,高等教育出版社,2019年 9月。 —— 国家级“十五”配套教材
书号: ISBN 7-04-017829-X
4. 许卓群、杨冬青、唐世渭、张铭,《数据结构与算法》, 高等教育出版社,2019年7月。 ——国家级“十五”规划 教材
测试、性能和可扩展性
测试(Testing):用系统的方法来发现程序中可 能存在的隐藏的bug
黑盒测试 白盒测试
性能优化
编译、代码、算法优化
可扩展性
软件复用 紧盯标准 平台无关
在总体设计上要注意代码风格、 可复用性和可扩展性
在关键段要牺牲上面的内容来追 求性能
性能和可扩展性是相互矛盾的
基本算法
问题的状态空间 穷举法 回溯、搜索 贪心法 递归分治 动态规划
八皇后问题
在8×8格的国际象棋棋盘上摆 放8个皇后,使其不能互相攻击
任意两个皇后都不处于同一行、 同一列或同一斜线上
问有多少种摆法?
八皇后问题的一个解
Q Q Q
Q Q
Q Q Q
穷举法(枚举法)
4个皇后各占一行,穷举每一行上 可能占有的列
风格、设计和实现 界面、排错 测试、性能和可扩展性
基本算法
枚举法、贪心法 递归、回溯、搜索与分支限界 分治法、动态规划
高级数据结构
线性:多维矩阵、稀疏矩阵、广义表、存储管理 树型:字符树、 BestBST、AVL树、伸展树
问题建模
数学建模、软件模型
成绩评定办法
平时:20%
课程目的
配合“数据结构与算法”主课,提高实际 动手能力和程序设计的质量
基本数据结构
线性表(向量、串、栈和队列)、二叉树、 树、图等
ADT、STL
综合应用程序
排序、检索、文件、索引等技术
程序设计实践和技巧
课程内容
C++编程技术补充
标准模板库 STL的基本概念 C++流处理
程序设计实践和技巧
考勤、开卷随堂测试、课堂表现
ACM作业:20%
北大ACM结果、源程序、实习报告
综合上机题:40%
源程序、实习报告
期末考试 20%
有附加题
作业要求
实习课4道大综合实习,6道 ACM
“诚实代码” 要调试 要提交上机报告
实习课程资源
数据结构实习(计算机和智能专业强化) db.pku.edu/mzhang/DS/shixi/index.htm jpk.pku.edu/pkujpk/course/sjjg/shixi/
在一些互相冲突的需求和约束条件之间寻 找平衡
反复试验,推倒重来,直至……
界面(interface)与排错
用户界面、程序接口
字符界面:菜单型,命令行型 简单、清晰、规范、统一 鲁棒性
排错
注意程序风格(避免全局变量、不用 goto……)
排错的时间至少跟写程序一样长 不要去怀疑编译器和库函数 读程序,而不是马上去改程序 不要过于依赖debug工具
共有44 = 256种情况
枚举时,可以排除直观不符合条件 的情况,减小候选集
有4! = 24种情况
最后输出合理的解
穷举法的代价
穷举问题域的所有解,找到所有最佳解 减少穷举次数
穷举的变量 注意穷举的顺序
减少判断每种情况的时间 时间代价最高
问题规模n,搜索空间Σ,总搜索时间是:
课程答疑 db.cs.pku.edu/mzhang/ds/bbs/ 注册:1-学号xxx
教材
1. 张铭、赵海燕、王腾蛟、宋国杰,《数据结构与算法实 验教程》,高等教育出版社,2009年 6月。——国家级 “十一五”规划教材
2. 张铭、王腾蛟、赵海燕,《数据结构与算法--学习指 导与习题解析》,高等教育出版社,2019年 6月。 —— 国家级“十一五”规划教材
STL中的容器
顺序容器 vSecetqourendceeqCuoentainliesrts
se关t, 联mu容lt器iset Assomcaiapt,ivmeuCltoimntaapiners
容器 Containers
STL中的容器
stack queue priority _queue
容器适配器
相关文档
最新文档