2020春 算法设计与分析 复习(1)

    技术2022-07-11  111

    概述

    算法·Algorithm练习题思考题

    算法·Algorithm

    算法定义 有穷性/终止性、确定性、可行性、输入、输出问题定义 输入和输出的关系计算复杂性理论 固有复杂性,上界复杂性,下界复杂性,平均复杂性,复杂性问题分类:P=NP?,抽象复杂性研究算法正确性分析 对于每一个输入是否都最终停止?且是否产生正确的输出? 不停止或产生不正确结果,都是不正确算法 注:近似算法对所有输入都停止,但产生近似正确的解或产生不多的不正确解算法复杂性分析 目的:预测算法对不同输入所需资源量 复杂性测度:时间、空间、I/O,是输入大小的函数 用途:为一个求解问题 选择最佳算法和最佳设备 数学基础:离散数学、组合数学、概率论、代数 复杂性分析的度量:输入大小、时间复杂性(是输入大小的函数)、空间复杂性、最坏复杂性(max)、最小复杂性(min)、平均复杂性(y∈Input,y作为算法A的输入出现的概率是Py,A的平均复杂性是 Γ ( z ) = Σ P y ∗ c o m p l e x i t y ( s i z e ( y ) ) \Gamma(z) = Σ Py*complexity(size(y)) Γ(z)=ΣPycomplexity(size(y)))算法设计模式 暴力搜索,分治法,图搜索与枚举(分支界限、回溯),随机化方法算法实现方法 递归与迭代,顺序、并行与分布式,确定性与非确定性,近似求解与精确求解,量子算法最优化算法设计方法 线性规划,动态规划,贪心法,启发式方法

    练习题

    (1). 用伪代码写出求整数最大公因子的欧几里得算法。

    1.输入两个数m,n 2.if(m>n),求余数m%n 3.若余数不为0,用n替代m,用余数替代n => 重复2 4.若余数为0,则n就是最大公约数

    例如,求81和21的最大公约数: 81/21=3…18 21/18=1…3 18/3=6…0 ∴最大公约数为3

    (2). 考虑如下伪代码 F(n) 1 if n=1 2 then return 1 3 else return n*F(n-1) 请说明F(n)的功能

    斐波那契数列计算乘积 例如,n=5时: return 5xF(4)=5x4xF(3)=…=5x4x3x2x1=120

    (3). 时间复杂度是否是衡量一个算法性能的主要标准,为什么?

    衡量一个算法性能原则上无标准。【时间、空间、IO、并行性】复杂度;内存算法中【时间、空间】占主导

    (4). 包含死循环的程序是不是算法,为什么?

    不是。有穷性?

    (5). 是否可以通过提高算法的时间复杂性来降低其空间复杂性?

    时空互换:时间复杂度<->空间复杂度 动态规划:空间换时间【台阶问题的动态规划】

    思考题

    (1).在信息产业中算法扮演什么角色?

    算法是计算机科学基础的重要主题(啥玩意儿…)

    Processed: 0.010, SQL: 9