您的位置:首页 > 理论基础 > 数据结构算法

大话数据结构 第二章 算法

2019-08-08 00:25 197 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/Felix_hyfy/article/details/98800894

大话数据结构 第二章 算法

  • 算法设计的要求
  • 算法效率的度量方法
  • 算法时间复杂度
  • 算法定义

    • 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列。并且每条指令表示一个或多个操作。

    算法特性

    输入

    • 具有零个或者多个输入

    输出

    • 算法最少有一个输出。

    有穷性

    • 算法在执行完有限步骤后会自动结束,不会无限循环

    确定性

    • 算法的每个步骤都有确定的含义,无二义性。

    可行性

    算法设计的要求

    正确性

    • 算法的正确性大部分情况下都不是用程序证明的,而是用数学方法证明的。
    • 检验一个算法是否正确的普遍标准:算法程序在没有语法错误、对于合法的输入数据能够产生满足要求的输出结果的前提下,对于非法的输入数据能够得出满足规格说明的结果

    可读性

    健壮性

    • 健壮性是指:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果

    时间效率高和存储量低

    算法效率的度量方法

    事后统计方法

    • 利用计算机计时器对不同算法的程序的运行时间进行比较,从而确定效率的高低。
    • 有很大缺陷,不予采纳

    事前分析估算方法

    • 指在程序编制前,根据统计方法对算法进行估算
    • 一个程序的运行时间,依赖于算法的好坏和问题的输入规模(输入量的多少)
    • 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而更应该关注最高阶项的阶数

    算法时间复杂度

    推导大O阶方法

    • 用常数1取代运行时间中的所有加法常数
    • 在修改后的运行次数函数中,只保留最高阶项
    • 如果最高阶项存在且不是1,则去除与这个项相乘的常数
    • 最后得到的结果就是大O阶

    常见大O阶

    • 常数阶O(1)、线性阶O(n)、对数阶O(log n)、平方阶O(n^2 )、立方阶O(n3)、指数阶O(2n)

    复杂度关系

    • 常数阶<对数阶<线性阶<nlogn阶<平方阶<立方阶<指数阶<阶乘阶
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: