算法时间复杂度

算法时间复杂度是衡量算法效率的重要指标,它表示算法中基本操作执行次数的数量级。算法的运行时间由语句频度决定,如示例中所示,通过计算各语句频度总和得出算法的时间复杂度为O(n*n)。了解不同算法的时间复杂度有助于选择更适合的解决方案。

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

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

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

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

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

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常见排序算法的时间复杂度




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值