美文网首页学习笔记
算法导论第2.2章 - 算法的分析

算法导论第2.2章 - 算法的分析

作者: 彩虹小星星 | 来源:发表于2021-09-08 11:18 被阅读0次

算法的分析

定义:通常来说我们想要度量算法的运行时间
表达方式:把运行时间描述成一个输入规模的函数
输入规模可以是待排序的数组的规模,输入元素的数量等
具体算法:针对每行代码,计算出代价和次数,并加权求总

  • 代价: ci代表第i行代码执行所需要的时间。(它是一个常量)
  • 次数: 执行/循环的次数 (当一个for 或者 while循环按正常方式退出时,执行测试的次数比执行循环体的次数多1)
    次数是一个关于输入规模n的函数,
    通常我们考虑最坏的情况和平均情况的分析。

增长量级
专注于最坏情况下的n的最高阶
*因为当n足够大的时候,常量c和低阶n的影响没有那么大。

练习

2.2-1

Θ(n^3)

2.2-2

MY-SWAP(A)
  for i = 1 to A.length - 1
      min = i
      for j = i+1 to A.length
          if A[j] < A[min]
            min = j
      minA = A[j]
      A[j] = A[i]
      A[i] = minA
  return A

2.2-3

MY-ADD(A, B)
  C[1] = 0                                       //  平均和最差情况都是1步
  for i = 1 to n                                 //  平均情况:(1+2+...+n)/n = (1+n)/2  ; 最差情况:n
    C[i] = (A[i] + B[i] + C[i]) % 2              //  同上
    C[i+1] = (A[i] + B[i] + C[i]) / 2            //  同上
  return C                                       //  平均和最差情况都是1步

平均情况下: T(n) = (1+n)/2 + 2 = n/2 + 2.5 也就是说 Θ(n)
最差情况下: T(n) = n*3 + 2 也就是说 Θ(n)

2.2-4

让算法的增长量级尽量控制在低阶的情况下

相关文章

  • 数据结构与算法参考书籍

    数据结构与算法分析 算法 算法导论 java编程思想

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

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

  • 算法与数据结构

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • #算法与数据结构书籍

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

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

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

  • 长期计划安排

    一、数据结构与算法分析 参考书 数据结构与算法分析:C语言描述 算法(第四版) 算法导论 课程相关 MOOC 邓俊...

  • 算法设计与分析导论

    《算法设计与分析导论》本书在介绍算法时,重点介绍用干设计算法的策略.非常与众不同。书中介绍了剪枝搜索、分摊分析、算...

  • lecture 1

    算法导论Lesson1 课程简介: 内容主要包括: 算法的含义、意义的简要介绍; 算法的分析; 插入排序、合并排序...

  • 算法与数据结构学习资料整理

    入门 数据结构与算法分析(C语言描述) 豆瓣链接 这本书我之前看的是纸质版,没有找电子版。 算法导论(原书第 3 ...

  • 快排【算法导论】

    注:学习算法导论,按照标准伪代码理解翻译为java实现,如有兴趣理解整个过程的细节,建议阅读《算法导论》第7章:快...

网友评论

    本文标题:算法导论第2.2章 - 算法的分析

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