算法复杂度基础

本文介绍了算法复杂度的基本概念,包括时间复杂度和空间复杂度。时间复杂度关注算法执行所需时间,通过渐进分析法忽略低阶项,如O(n^3)。常见代码结构如嵌套循环对应不同复杂度:常数次数O(1)、嵌套结构O(N)、多重嵌套结构O(N^2)、顺序结构O(N^2)和循环次数O(N)或O(logN)。空间复杂度则衡量算法运行中所需的存储空间。在算法分析中,通常更重视时间复杂度。
摘要由CSDN通过智能技术生成

一、什么是算法复杂度?

算法进行计算的时候,存储数据需要占用一定的 空间,执行计算需要耗费一定的时间 时间。算法复杂度就是在算法计算过程中对「空间」与「时间」的评价。

解决同一个问题,不同算法所有的空间和时间是不同的,这取决于算法是如何设计的。同样,同一个问题,规模不同时,同一个算法所用的空间和时间也不同。

例如:某排序算法为 100 个数排序和为 1000 个数排序。

所以,一个算法的复杂度是问题规模 N 的函数。

二、时间复杂度

时间复杂度是算法执行计算所花费的时间多少的度量,但是不同的机器计算速度不同,实际的时间很难统计,由此可以通过统计算法执行的语句数来表示时间复杂度。

1. 渐进时间复杂度

随着问题规模 n 的增大,常数部分的影响越来越小:T(n) = 2 n 3 n^3 n3 + 4n + ​ l o g n logn logn + 4;而增长最快的项影响越来越大( n 3 n^3 n3):T(n) = 2 n 3 n^3 n3 + 4n + ​ l o g n logn logn + 4。

渐进时间复杂度只关注增长最快的项:T(n) = O( n 3 n^3 n3),去除常数系数与复杂度小的项。平时说代码的时间复杂度,一般指渐进时间复杂度。

n n n^n n

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值