🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
时间复杂度,算法的时间复杂度是一个**函数**,它**定性**描述该**算法**的**运行时间**。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述。 ![](https://img.kancloud.cn/9b/c5/9bc5adbb04d3d79339975cf9e6c00dcb_664x584.png) (图片资料源自网络,这张图不用去背,只需要脑海里有一个大小关系就OK了) 下面的代码,时间复杂度即为O(1),因为只执行了一次 ``` let i = 0 i += 1 ``` 下面这段代码的复杂度为 O(n),因为执行了N次 ``` for( let i =0; i<n;i++){ //todo } ``` 注意时间复杂度的计算,不计算常数的相加,但要计算常数的 次方或开方,因为相加的话,N足够大 就可以忽略不计,比如下面 因为n足够大 1就可以忽略不计 ,包括常数 O(2n) + O(n) = O(n) ![](https://img.kancloud.cn/1d/a1/1da1432e641272f0c6171e92ea05e387_487x174.png) 但是 O(n) * O(n) = O(n2) ![](https://img.kancloud.cn/15/34/15344ddb01607bf0cee958f76da8ac2b_532x174.png) 又比如下面代码中n每次翻一倍,其实就是求开方,复杂度为 O(logN), ![](https://img.kancloud.cn/af/c5/afc52d0fce3261aa9fb02b34328ba21d_270x151.png)