风也温柔

计算机科学知识库

零基础学数据结构 数据结构初学0(导论)

  高效的程序 = 恰当的数据结构 +合适的算法

  一、算法的特性

  1、输入

  算法具有0个或多个输入

  2、输出

  算法至少有1个或多个输出

  3、有穷性

  算法在有限的步骤之后会自动结束而不会无限循环

  4、确定性

  算法中的每一步都有确定的含义,,不会出现二义性 不会出现二义性

  5、可行性

  算法的每一步都是可行的

  二、算法设计的准则

  1、正确性

  算法对于合法数据能够得到满足要求的结果

  算法能够处理非法输入,,并得到合理的结果 并得到合理的结果

  算法对于边界数据和压力数据都能得到满足要求的结果

  注意:

  零基础学绘画学那种画_零基础学羽毛球一般学多久_零基础学数据结构

  正确性是算法最需要满足的基本的准则,,但是作为 但是作为

  计算机程序,,不可能无限制的满足这条准则 不可能无限制的满足这条准则。

  2、可读性

  算法要方便阅读零基础学数据结构 数据结构初学0(导论),,理解和交流 理解和交流

  3、健壮性

  算法不应该产生莫名其妙的结果

  4、高性价比

  利用最少的时间和资源得到满足要求的结果

  零基础学数据结构_零基础学绘画学那种画_零基础学羽毛球一般学多久

  三、小结

  1、算法是为了解决实际问题而设计的

  2、数据结构是算法需要处理的问题载体

  3、数据结构与算法相辅相成

  程序 = 数据结构 + 算法

  四、算法效率的度量

  1、事后统计法

  比较不同算法对同一组输入数据的运行处理时间

  零基础学羽毛球一般学多久_零基础学绘画学那种画_零基础学数据结构

  缺陷有:

  为了获得不同算法的运行时间必须编写相应程序 运行时间严重依赖硬件以及运行时的环境因素算法的测试数据的选取相当困难

  事后统计法虽然直观,,但是实施困难且缺陷多 但是实施困难且缺陷多,一般不予考虑

  2、事前分析估算

  依据统计的方法对算法效率进行估算影响算法效率的主要因素

  算法采用的策略和方法

  问题的输入规模

  编译器所产生的代码

  零基础学绘画学那种画_零基础学羽毛球一般学多久_零基础学数据结构

  计算机执行速度

  三、判断一个算法的效率时,,往往只需要关注操作数量的 往往只需要关注操作数量的最高次项,,其它次要项和常数项可以忽略

  其它次要项和常数项可以忽略。

  1、算法的空间复杂度通过计算算法的存储空间实现

  S(n) = O(f(n))

  其中,,n为问题规模 为问题规模零基础学数据结构,,f(n) )为在问题规模为 为在问题规模为n时所占用存储空间的函数 时所占用存储空间的函数

  大O 表示 表示法同样适用于算法的空间复杂度

  当算法执行时所需要的空间是常数时零基础学数据结构,空间复杂度为O(1)

  2、多数情况下,,算法执行时所用的时间 算法执行时所用的时间更令人关注如果有必要,,可以通过 可以通过增加空间复杂度来降低时间复杂度

  同理,也可以通过增加时间复杂度来降低空间复杂度在实现算法时需要分析具体问题对执行时间和空间的要求

  文章来源:https://blog.csdn.net/king_bingge/article/details/8820690