(′・ω・`)

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

    1.算法及其基本特征

      算法是指对方案的准确描述,是解决问题的执行步骤。

      算法不等于数学上的计算方法,也不等于程序。程序是算法的载体。

      算法的基本特征如下:

        (1)可行性:步骤可实现,执行结果可达到预期目的。

        (2)确定性:步骤明确,不模棱两可,无多义性。

        (3)有穷性:有限的时间(内存)内完成。

        (4)拥有足够的输入:算法需要拥有足够的输入信息(初始化信息),当输入数据不足时,算法可能失效。

    2.算法复杂度

      算法复杂度用来衡量算法的优劣,包括算法的时间复杂度和空间复杂度。

        (1)算法的时间复杂度

            算法的时间复杂度是指执行算法所需要的计算工作量。

            算法的时间复杂度不等于算法程序执行所需要的具体时间。算法程序执行的具体时间受所使用的计算机、程序设计语言以及算法实现过程中的许多细节的影响。而算法的时间复杂度与这些因素无关。

            算法的计算工作量是用算法所执行的基本运算次数来度量的。算法所执行的运算次数与问题的规模有关。

            在具体分析一个算法的工作量时,在同一个问题规模下,算法所执行的基本运算次数还可能与特定的输入有关。即输入不同时,算法所执行的基本运算次数不同。

        (2)算法的空间复杂度

            算法的空间复杂度是指执行这个算法所需要的内存空间。

            算法执行期间所需的存储空间包括3个部分:

              输入数据所占的空间

              程序本体所占的空间

              算法执行过程中所需要的额外空间。(包括算法程序执行过程中的工作单元,以及某种数据结构所需要的附加存储空间)

              如果额外空间量相对于问题规模(即输入数据所占的存储规模)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地(in place)工作的。

            为了降低算法的空间复杂度,主要应减少输入数据所占的存储空间以及额外空间,通常采用压缩存储技术。

posted on 2020-02-28 16:35  9%laIzOZBwjdvfkaVb9n  阅读(343)  评论(0编辑  收藏  举报