算法时间复杂度

来源:互联网 发布:java软件工程师月薪 编辑:程序博客网 时间:2024/06/10 17:40

算法是解决某一特定类型问题的有限运算序列。

算法的特征:有穷性、确定性、可行性、输入和输出。

算法的评价:正确性、可读性、稳定性和算法效率。其中算法效率通过算法时间复杂度和空间复杂度来描述。

时间复杂度:指算法中包含简单操作的次数。一般以数量级形式体现。

空间复杂度:指算法运行过程中临时占用的存储空间的大小。一般以数量级形式体现。

1时间复杂度的计算

/*示例1:分析一下程序段的时间复杂度*/for (i = 0; i < n; i++)                /*语句1*/{    y = y + 1;                         /*语句2*/    for (j = 0; j <= 2*n; j++)         /*语句3*/        x++;                           /*语句4*/}

分析:

语句频度是指该语句重复执行的次数。一个算法中所有语句的频度之和构成了该算法的运行时间。

语句1的频度:n+1

语句2的频度:n

语句3的频度:n*(2n+2)

语句4的频度:n*(2n+1)

于是,该程序段的时间复杂度T(n)=(n+1)+n+n*(2n+2)+n*(2n+1) = 4n*n+5n+1=O(n*n)

/*示例2:分析一下程序段的时间复杂度*/i = 1;while (i <= n)    i = i * 2;

分析:

2常用时间复杂度关系


3常见排序算法的时间复杂度




0 0
原创粉丝点击