【数据结构point】时间复杂度
时间复杂度分析
- 基本操作,即只有常数项,认为其时间复杂度为O(1)
- 顺序结构,时间复杂度按加法进行计算
- 循环结构,时间复杂度按乘法进行计算,循环次数乘以循环体代码的复杂度(例:for,while)
- 分支结构,时间复杂度取最大值(例:switch,if-else)
- 判断一个算法的效率时,往往只需要关注操作数量加法项中的最高次项,其它次要项和常数项可以忽略
- 在没有特殊说明时,我们所分析的算法的时间复杂度都是指最坏时间复杂度
常见时间复杂度
O(1)<O(logn)<O(n)<(nlogn)
<O()<O()<O()<O(n!)
一般我们都是将代码的时间复杂度控制在O(logn),O(n),O(nlogn),O()这四个范围值内
例题
给定N个整数的序列{,,…,},求函数{}
算法1
T(N)===
算法2
T(N)===
算法3
算法4