计算机导论mod,算法基础计算机导论.ppt

算法基础计算机导论

计算机导论 黄国兴、陶树平、丁岳伟编著 计算机导论 ——软件部分 巢爱棠 atchao@yeah.net 办公室:1208 软件部分 第2章 计算机的基础知识(2.4~2.6) 第4章 计算机系统软件与工具软件 第5章 计算机应用软件(自学) 基本要求:理解程序设计、算法与数据结构的基本知识,注意养成良好的程序设计风格和习惯,为学习本书的以下各章和后续软件课程打好基础。 第2章 计算机的基础知识 程序设计基础 算法基础 数据结构基础 2.4 程序设计基础 程序设计语言 人与计算机交互的工具 3个发展阶段 结构化程序设计 结构化程序设计方法 3种基本结构 单入口单出口的控制成分 良好的程序设计风格 编写程序按照规范化方法进行 程序设计语言 机器语言:由计算机的指令系统组成,使用机器语言编写的程序计算机能够直接理解并执行,但编程和理解都十分的困难。 汇编语言:使用“助忆符”来表示指令的操作码,并使用存储单元或寄存器的名字表示地址码,以便于记忆和书写。 程序设计语言 高级程序设计语言:是一种与机器的指令系统无关、表达形式更接近于被描述的问题的程序设计语言,便于程序的编写。使用高级程序设计语言编写的程序称为源程序,它必须经过程序设计语言翻译系统的处理后才能执行。 面向过程程序设计语言 面向对象程序设计语言 结构化程序设计 程序设计 广义的程序设计 1、结构化程序设计方法 结构化程序设计 结构化程序设计 结构化程序设计 结构化程序设计 结构化程序设计 顺序结构例 结构化程序设计 分支结构例 结构化程序设计 循环结构例:我国有13亿人口,按人口年增长0.8%计算,多少年后我国人口超过26亿。 3.单入口单出口的控制成分 良好的程序设计风格 编写程序必须按照规范化方法进行,应养成良好的程序设计风格 标识符:按意命名、保留字用大写字母、使用统一的缩写规则。 表达式:使用括号、使用库函数、条件化简 良好的程序设计风格 函数与过程:一个大型程序分解为多个模块,每个模块是一个函数或过程。 模块的独立性(高内聚、低耦合) 模块的规模(适中) 良好的程序设计风格 程序行的排列格式:排列格式美观、层次分明、使用统一的缩进格式,同一嵌套深度并列的语句对齐。 注释:添加必要的注释,以说明程序、过程和语句等的功能及注意事项。 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 算法设计举例2—— 欧几里德算法(Euclid’s Algorithm) 欧几里德算法(Euclid’s Algorithm) ——转辗相除法 该算法的步骤用文字表述如下: 第1步:读入两个正整数m和n(设m>n) 第2步:求m和n的余数r=mod(m,n) 第3步:用n的值取代 m,用r的值取代n 第4步:判别r的值是否为零,如果r=0,则m为最大公因子;否则返回 第2步 第5步:输出m的值,即为最大公因子 2.5 算法基础 2.5 算法基础 用自然语言表示算法 2.5 算法基础 2.5 算法基础 2.5 算法基础 2.5 算法基础 void main() { int m,n,r; scanf("%d%d",&m,&n); r=m%n; while(r!=0) { m=n; n=r; r=m%n; } printf("\n the greatest common divisor is:%d",n); } 2.5 算法基础 怎样衡量算法的优劣 判断算法好坏的四个标准 正确性、易读性、健壮性、时空特性 算法的时空特性即 时间特性 空间特性 2.5 算法基础 算法的时间特性 是指依据算法编制成程序后在计算机中执行时所耗费的时间大小。 所耗费的时间取决于程序运行时输入的数据量、对源程序编译所需要的时间、执行每条指令所需的时间以及程序中语句重复执行的次数。 2.5 算法基础 算法的时间特性求解 计算算法中主要语句执行的次数——语句频度 用时间复杂度—T(n)表示 当问题规模n→∞时,算法执行时间增长率。 用大“O”表示法。记作T(n)=O(f(n))( f(n) :为语句频度之和的最高次项的数量级) 问题规模—n 算法求解问题的输入量 (或初始数据量)。 例如,某算法的语句频度为2n3+3n2+2n+1 则:T(n)=O(n3) 2.5 算法基础 算法的空间特性 讨论算法中除正常占用内存开销外的辅助存储单元规模。 用空间复杂度—S(n)表示 当问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值