二.算法描述与分析

来源:互联网 发布:网购选哪软件好 编辑:程序博客网 时间:2024/06/06 10:54

一.算法

定义:通常把基于存储结构得运算实现的步骤或过程称为算法。

五个特性:(1)有穷性;

                (2)确定性;

                (3)可行性;

                (4)有输入;

                (5)有输出;

好算法应具备:(1)正确性;

                       (2)可读性;

                       (3)健壮性;

                       (4)通用性;

                       (5)效率与存储量需求;

二.算法描述

输入→算法→输出

返回值  算法对应的函数名(形参列表)

{   //临时变量的定义

       //实现由输入参数的操作

            ......

}

返回值:通常为bool类型,表示算法是否成功执行。

形参列表:由输入型参数和输出型参数构成。

三.算法分析基础

1.算法时间复杂度分析

①分析算法的执行时间

Ⅰ.求出算法所有原操作的执行次数(也称为频度),它是问题规模n的函数,用T(n)表示。

Ⅱ.算法执行时间大致=原操作所需的时间×T(n)。

Ⅲ.比较不同算法的T(n)大小得出算法执行时间的好坏。

②算法的执行时间用时间复杂度来表示

T(n)=O(f(n))

时间复杂度比较关系:O(1)<O(log2n)<O(n)<O(nlog2n)<O(n²)<O(n³)<O(2^n)<O(n!)

2.算法空间复杂度分析

时间复杂度:用于量度一个算法在运行过程中临时占用的存储空间的大小。

S(n)=O(g(n))

3.其他情况的算法分析

①最好、最坏和平均时间复杂度分析

定义:设一个算法的输入规模为n,Dn是所有输入的集合,任一输入IDn,PI)是I出现的概率,有ΣPI)×TI)   (IDn)

算法的最坏时间复杂度为:W(n)=MAX{TI)}

算法的最好时间复杂度为:B(n)=MIN{TI)}