$number{01}计算机导论教学第11章算法与程序设计课件目录•算法概述•程序设计基础•数据结构与算法•程序设计实践•算法与程序设计的关系•计算机导论中的算法与程序设计01算法概述输出项有穷性算法必须能在执行有限个步骤之后终止
可行性算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成
输入项算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件
算法是一组有穷的规则,它们规定了解决某一特定类型问题的一系列运算步骤
算法的定义确定性算法的每一步骤必须有确切的定义
算法有一个或多个输出,以反映对输入数据加工后的结果
没有输出的算法是毫无意义的
算法的定义与特性123算法的分类数论与代数算法包括整数运算、多项式运算等相关的算法
基本算法包括枚举和搜索两种,是最基础的算法类别
数据结构的算法包括线性结构、树形结构、图形结构等相关的算法
动态规划、回溯搜索、分治算法计算几何的算法图论算法算法的分类是解决复杂问题的常用方法,也是算法设计的重要思想
包括几何图形的基本运算、几何变换等相关的算法
包括最短路径、最小生成树、网络流等相关的算法
算法的分类概率算法通过概率统计的方法设计和分析算法,常用于处理随机问题和近似计算
近似算法用于解决NP难问题,能够在多项式时间内得到一个近似最优解
在线算法与离线算法根据问题的输入方式,将算法分为在线和离线两种类型
可读性空间复杂度算法的评价指标0504030201评估执行程序所需的存储空间
可以估算出程序对内存资源的占用情况
好的算法应该具有较好的可读性,以便于人们理解和交流
健壮性正确性时间复杂度评估执行程序所需的时间
可以估算出程序对处理器资源的占用情况
评价一个算法的好坏首先要考虑其正确性,即对于任何合法的输入,经过有限次运行后,都能得到正确的输出
当输入数据不合法时,好的算法应该能够做出