美文网首页
算法和算法分析

算法和算法分析

作者: 随便都赢 | 来源:发表于2020-09-09 12:15 被阅读0次

算法是问题求解步骤的描述。这种描述具有五个特性。

  • 有穷性 算法需要在有穷的步骤、时间内完成
  • 确定性 算法的每一个步骤只有唯一的执行路径不能有歧义
  • 可行性 算法中的每个操作必须是可实现的
  • 输入 可以有零个或多个输入
  • 输出 必须有一个或多个输出,不产出算法就没有意义

算法的设计要求:

  • 正确性 正确性的级别1、程序无语法错误 2、需要有符合逻辑的输出 3、可以满足极端数据的输入 4、对一切合法输入都有满足规格说明的结果
  • 可读性 易于理解与交流,便于今后修改与调试
  • 健壮性 对于非法输入可以有合理的处理和反馈
  • 效率与低存储量需求

算法的度量
1、事后统计
直接在计算机上运行,计算运行时间。因为不同机器上运行时间有差异,而且相同机器在不同情况下性能存在差异所以只能够粗略计算。
2、事前统计法
通过分析程序中原操作的频度(原操作的出现次数)与问题规模n所形成的函数来确定算法的渐进时间复杂度(简称时间复杂度),时间复杂度分为:

  • 最好时间复杂度 输入样本为最少执行次数时的时间复杂度
  • 平均时间复杂度 获取所有样本及其出现概率,将其加权后算出平均的时间复杂度
  • 最坏时间复杂度 输入样本为最多执行次数时的时间复杂度
    由于平均复杂度的样本及其加权难以计算,故一般使用最坏时间复杂度。时间复杂度一般只需要取出问题规模的增长率或阶即可。

空间复杂度
除输入和程序本身外所需的辅助空间。如果所需空间为常数则称该算法原地工作。

相关文章

  • 算法导论学习笔记(1)

    《算法导论》一共包含两部分,即算法分析和算法设计。 什么是算法分析? “算法分析是关于计算机程序性能和资源利用的理...

  • 算法分析:如何分析一个算法的效率好坏?

    什么是算法分析 当我们说算法分析的时候我们在说什么?(狭义的技术层面的定义):算法分析指的是:对算法在运行时间和存...

  • 算法和算法分析

    算法是问题求解步骤的描述。这种描述具有五个特性。 有穷性 算法需要在有穷的步骤、时间内完成 确定性 算法的每一个步...

  • 数据时代,只有算法能洞悉数据的内在逻辑,让数据产生商业价值!

    本书介绍在互联网行业中经常涉及的算法,包括排序算法、查找算法、资源分配算法、路径分析算法、相似度分析算法,...

  • GV算法及分区

    GV的算法有标记-清除算法、标记-整理算法、复制算法、分代算法;对于那些对象可以回收,有引用计数法和可达性分析算法...

  • 1.算法

    算法的解决时间和空间的问题 算法分析 运行的快慢

  • 【JVM】垃圾回收机制(2)--垃圾收集算法

    这里主要分析"标记-清除"算法、"复制"算法、"标记-整理"算法、"分代收集"算法的思想、优缺点和应用场景。一 标...

  • 给我巨大影响的技术书籍

    算法《算法概论》《算法设计与分析基础》 Anany Levitin《算法引论》Udi Manber《算法导论》《什...

  • 时间复杂度和空间代价

    一、算法定义算法设计的目标:时间和空间、还有健壮和可读等。 二、算法分析1、时间复杂度算法的时间代价是指算法执行时...

  • 算法的效率分析

    事后统计法:收集该算法实际的执行时间和实际占用空间的统计资料。 事前分析估算法:在算法运行之前分析该算法的时间复杂...

网友评论

      本文标题:算法和算法分析

      本文链接:https://www.haomeiwen.com/subject/uoleektx.html