- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《算法设计与分析》
关于《算法设计与分析》课程
概述
课程介绍 什么是算法 算法的描述 算法分析
课程性质
本课程属于专业选修课(计算机科学与技术)、专 业必修课(计算机科学与技术(动画))
开设目的
使学生掌握非数值算法设计的主要方法 独立设计算法和对算法进行复杂性计算奠定基础 利用所学的算法设计策略解决实际问题的能力
2006年硕士毕业于辽宁师范大学计算机科学与技 术系计算机应用技术专业,工学硕士
2010年博士毕业于南京大学计算机科学与技术系 计算机应用技术专业,工学博士
2010年7月回校任教至今
联系方式
电子邮件: 办公室:西山校区第二教学楼B614 个人主页:
辽宁师范大学计算机与信息技术学院 宋传鸣
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
主要参考书(References)
The Art of Computer Programming
数据结构的开拓者D.E.Knuth的计算机科学发展 史上的不朽之作
第1卷 基本算法:介绍计算机程序设计的基本算法, 包括基本的编程概念和技术以及信息结构--机内 信息的表示、数据元及其处理的结构关系
自然语言
优点: 容易理解 缺点: 冗长,有二义性 使用方法: 粗线条描述算法思想 注意事项: 避免写成自然段
流程图
优点: 直观 缺点: 缺少严密性和灵活性 使用方法: 描述简单算法 注意事项: 注意抽象层次
算法的描述
辽宁师范大学计算机与信息技术学院 分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
关于理论计算机科学
关于计算机和计算机械的数学理论,也称计算理论
自动机与形式语言理论
程序理论
形式语义学
算法分析和计算复杂性理论
学科产生
20世纪30年代,人们关注是否存在一种有效过程求 解问题,即问题的可解与不可解性
概述
课程介绍 什么是算法 算法的描述 算法分析
程序设计语言
优点: 能由计算机执行 缺点: 抽象性差,对语言要求高 使用方法: 对算法进行验证 注意事项: 将算法写成子函数
#include <iostream.h>
int iCommonFactor(int m, int n) {
求解问题的一般过程
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法与程序
算法与程序的区别
程序是算法用某种程序设计语言的具体实现 程序可以不满足算法的第四条性质
为什么要学习算法?
算法是程序的灵魂 问题求解过程:分析问题—设计算法—编写程 序—整理结果 程序设计研究的四个层次:算法—方法学—语 言—工具
计算机科学与技术专业课程
Algorithm Design and Analysis
算法设计与分析
xxx
辽宁师范大学计算机与信息技术学院
概述
课程介绍 什么是算法 算法的描述 算法分析
关于任课教师
宋传鸣 讲师
2003年本科毕业于辽宁师范大学计算机科学与技 术系计算机应用技术专业,工学学士
学时安排
48学时,每周3学时,修完课程可获3学分
考核方式——考察
期末为闭卷笔试,成绩占总成绩的50% 平时出勤占5%,学期论文(3篇)占45%(第4/8/12周) 试卷题型:概念型、设计型、证明型
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
关于《算法设计与分析》课程
概述
计算思维(Computational Thinking)
课程介绍 什么是算法 算法的描述 算法分析
摘自《中国计算机学会通讯》2012年第一期
理论科学、实验科学、计算科学被称为推动人类 文明进步和科技发展的三大科学
如果存在某个模型能够建立一个算法求解问题,则 将该问题归入可解的问题类
30年代前期,哥德尔等创立递归函数 30年代中期,丘奇的λ演算,波斯特的波斯特机,图
灵的图灵机 40年代后期:存储程序型计算机(RAM,RASPM)
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
计算思维课程现已在部分高校中开启
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
教材(Textbook)
王晓东编著.计算机算法设计与分析(第3版). 北 京:电子工业出版社, 2007.
辽宁师范大学计算机与信息技术学院 宋传鸣
算法分析与计算复杂性理论
各类具体算法的复杂性的研究称作算法分析
一般算法的复杂性的研究称作计算机复杂性理论
计算复杂性理论原是可计算理论的一支,是以各种 可计算函数(递归函数)的计算复杂性为研究对象
基本问题
实际可计算函数的结构和性质 60年代中期以来,有关研究者一般以计算时间 多项式有界的函数作为实际可计算的函数
算法应用举例
人类基因组项目:找出人类DNA中所有100000种基 因,确定构成人类DNA的30亿种化学基对的各种序 列,并将信息存储,检索和分析等
互联网:寻找合理的数据传输路径 电子商务:保持私人信息,采用公钥和数字签名等 交通:GPS导航 计算几何:求解平面上n个点的凸壳 数值计算:求解n个矩阵相乘,解方程组等
优点: 表达能力强,容易理解
1. r ← m % n; 2. 循环直到r ← 0
2.1 m ← n;
2.2 n ← r;
2.3 r ← m%n; 3. 输出n
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法复杂性分析(Complexity Analysis)
算法的性质
输入:有零个或多个由外部提供的量
输出:至多一个量作为输出
确定性:每条指令是清晰的,无歧义的
有限性:每条指令执行次数有限,执行时间也有限
有效性:每个操作须使用户利用纸笔在有限时间内 精确地完成
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法复杂性=算法所需要的计算机资源
时间复杂性(Time Complexity): T=T(N,I) 空间复杂性(Spatial Complexity): S=S(N,I)
N表示问题的规模,I表示算法的输入
计算机包含的运算有多种,记为O1,O2,…,Ok,执行时
间分别为t1, t2, …, tk,每种运算的次数为e1, e2, …, ek,
第2卷 半数值算法:介绍随机数和算术,提供了计 算机编程和数值分析之间的丰富接口
第3卷 排序与查找:介绍排序和查找的最权威的经 典技术,扩充了第1卷的数据结构,以处理大小型数 据库及内外部存储.本书偏重分析技术,采用汇编 语言描述算法,是一本本学科最经典最权威的百 科全书,适合于从事数据结构与算法研究的专家 阅读
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
《算法设计与分析》课程的主要内容
第一章 绪论 第二章 数学预备知识与典型的数据结构 第三章 递归与分治策略 第四章 动态规划 第五章 贪心算法 第六章 NP完全问题 第七章 回溯法 第八章 分支限界法 第九章 随机化算法 第十章 网络流算法 第十一章 并行算法入门
……
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法可以解决哪些类型的问题?
重要的问题类型
查找问题 排序问题 图问题 组合问题 几何问题
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
确定性机器与非确定性机器的解题能力比较
关于计算和算法的研究
对串行计算的性质研究多 对并行计算性质的研究少
辽宁师范大学计算机与信息技术学院 宋传鸣
《算法设计与分析》
算法(Algorithm)的定义
概述
课程介绍 什么是算法 算法的描述 算法分析
解决问题的一种方法或过程,由若干条指令组成
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
主要参考书(References)
M. H. Alsuwaiyel著,吴伟昶,方世昌译.算法设计 技巧与分析. 北京:电子工业出版社, 2010.
Thomas H. Cormer等著, 潘金贵, 顾铁成等译. 算 法导论(第二版). 北京: 机械工业出版社, 2010
int r=m% n; while(r!=0) {
m=n; n=r; r=m% n; } return n; }
辽宁师范大学计算机与信息技术学院 宋传鸣
算法的描述
《算法设计与分析》
概述
课程介绍 什么是算法 算法的描述 算法分析
算法的描述
伪代码(PseudoCode) —算法语言
介于自然语言和程序设计语言之间.采用某一程序 设计语言的基本语法,操作指令可结合自然语言来 设计