算法时间复杂度计算

目录

1.时间复杂度计算

1.1 时间复杂度例题

1.1.1例题

1.1.2例题

1.1.3例题

1.1.4例题

1.2时间复杂度leetcode例题


1.时间复杂度计算

       首先,我们需要了解时间复杂度是什么:算法的时间复杂度是指算法在编写成可执行程序后,运行时需要耗费的时间资源——通俗的讲,就是一个算法运行的快慢。(算法中基本操作的次数)


由于计算具体的执行次数太过麻烦所以引入——大O的渐进表达式(估算)


1.1 时间复杂度例题

利用大O的渐进表达式计算时间复杂度

1.1.1例题

解答:F(N)=2*N+10

          由于常数对结果影响不大,直接用大O渐进表达式表示:时间复杂度为O(N)


1.1.2例题

 解析:由于循环100次,是常数次,常数次循环时间复杂度就是O(1)


1.1.3例题

 

 观察上面的字符查找函数:我们可以看见这时时间复杂度有三种情况—>

1.最好的情况:运行一次就找出来了

2.不好不坏的情况:N/2次找到

3.最坏的情况:N次找到

但是时间复杂度是取最坏的情况:上面时间复杂度也就是O(N)


1.1.4例题

 计算上面二分查找的时间复杂度:

分析:我们可以将二分查找理解为一张长的纸条不断对半折

1.折半了多少次就除了多少个2,

   除了多少个2,就查找了多少次

2.假设查找了x次,所以就有下面的计算

注意:我们不能去数循环,这个不一定准确,一定要用算法思想去计算

1.2时间复杂度leetcode例题


 这里我们可以用异或的方法:
1.异或的特点,相同的异或结果为0,相异的异或结果为1。

2.可以利用相同的两个数异或结果为0来求得消失的那个数

解答:假设数组是0到6,7个数字,传过来是012345这5个数字,然后令x=0,分别和缺少数字的数组异或异或完再和完整的数组异或,得到的结果就是缺少的那个数字。

代码实现:

猜你喜欢

转载自blog.csdn.net/qq_58286439/article/details/130066119