(2)--第1章 绪论-算法数据结构.ppt
《(2)--第1章 绪论-算法数据结构.ppt》由会员分享,可在线阅读,更多相关《(2)--第1章 绪论-算法数据结构.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-算法第1章 绪论n n算法定义算法定义n n算法特征算法特征n n算法的描述算法的描述n n算法评价算法评价1.4 1.4 算法和算法分析算法和算法分析n n算法定义:算法定义:一个有穷的指令集一个有穷的指令集,这些指令为解决某,这些指令为解决某一特定任务规定了一个运算序列一特定任务规定了一个运算序列算法定义算法定义n n算法的描述:算法的描述:uu自然语言自然语言uu 流程图流程图uu 程序设计语言程序设计语言uu 伪码伪码算法描述算法描述uu 输入输入 有有0 0个或多个输入个或多个输入uu 输出输出 有一个或多个输出有一个或多个输出(处理结果处理结果)uu 确定性确定性 每步定义都是确
2、切、无歧义的每步定义都是确切、无歧义的uu 有穷性有穷性 算法应在执行有穷步后结束算法应在执行有穷步后结束uu 有效性有效性 每一条运算应足够基本每一条运算应足够基本算法的特性算法的特性算法的评价算法的评价uu正确性uu可读性uu健壮性uu高效性(时间代价和空间代价)算法的效率的度量算法的效率的度量算法效率:用依据该算法编制的程序在计算机上执行所消耗的时间来度量事后统计事前分析估计1.1.事后统计:事后统计:利用计算机内的计时功能,不同算法利用计算机内的计时功能,不同算法的程序可以用一组或多组相同的统计数据区分的程序可以用一组或多组相同的统计数据区分 缺点:缺点:必须先运行依据算法编制的程序必
3、须先运行依据算法编制的程序所得时间统计量依赖于硬件、软件等环境因素,所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣掩盖算法本身的优劣 2.2.事前分析估计:事前分析估计:一个高级语言程序在计算机上运行所消耗的时间取一个高级语言程序在计算机上运行所消耗的时间取决于:决于:依据的算法选用何种策略依据的算法选用何种策略 问题的规模问题的规模 程序语言程序语言 编译程序产生机器代码质量编译程序产生机器代码质量 机器执行指令速度机器执行指令速度 时间复杂度的渐进表示法时间复杂度的渐进表示法算法中基本语句重复执行的次数是问题规模n的某个函数f(n),算法的时间量度记作:T(n)=O(f(n)
4、表示随着n的增大,算法执行的时间的增长率和f(n)的增长率相同,称渐近时间复杂度。数学符号“O”的定义为:若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n)表示存在正的常数C和n0,使得当nn0时都满足0T(n)Cf(n)。n*n阶矩阵加法:阶矩阵加法:for(i=0;i n;i+)for(j=0;j n;j+)cij=aij+bij;语句的频度语句的频度(Frequency Count):重复执行的次数:重复执行的次数:n*n;T(n)=O(n 2)即:矩阵加法的运算量和问题的规模即:矩阵加法的运算量和问题的规模n的平方是同一个量级的平方是同一个量级分析算法时间复杂
5、度的基本方法分析算法时间复杂度的基本方法找出语句频度最大的那条语句作为基本语句计算基本语句的频度得到问题规模n的某个函数f(n)取其数量级用符号“O”表示例例1 1x=0;y=0;for(int k=0;k n;k+)x+;for(int i=0;i n;i+)for(int j=0;j n;j+)y+;f(n)=n2T(n)=O(n2)例例2 2时间复杂度是由时间复杂度是由嵌套最深层嵌套最深层语句的频度决定的语句的频度决定的 void exam(float x ,int m,int n)float sum ;for(int i=0;i m;i+)sumi=0.0;for(int j=0;j
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2-第1章 绪论-算法数据结构 绪论 算法 数据结构
限制150内