算法时间复杂度计算

简介: 算法时间复杂度计算

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,分别和缺少数字的数组异或异或完再和完整的数组异或,得到的结果就是缺少的那个数字。

代码实现:

相关文章
|
2月前
|
机器学习/深度学习 存储 缓存
数据结构从入门到精通——算法的时间复杂度和空间复杂度
算法的时间复杂度和空间复杂度是评估算法性能的两个重要指标。时间复杂度主要关注算法执行过程中所需的时间随输入规模的变化情况,而空间复杂度则关注算法执行过程中所需的最大存储空间或内存空间。
74 0
|
2月前
|
机器学习/深度学习 算法
递归算法题练习(数的计算、带备忘录的递归、计算函数值)
递归算法题练习(数的计算、带备忘录的递归、计算函数值)
|
2月前
|
算法 Java
算法:Java计算二叉树从根节点到叶子结点的最大路径和
算法:Java计算二叉树从根节点到叶子结点的最大路径和
|
4月前
|
机器学习/深度学习 存储 算法
数据结构 | 算法的时间复杂度和空间复杂度【详解】(二)
数据结构 | 算法的时间复杂度和空间复杂度【详解】(二)
|
4月前
|
机器学习/深度学习 存储 算法
数据结构 | 算法的时间复杂度和空间复杂度【详解】(一)
什么是数据结构? 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。
|
4月前
|
机器学习/深度学习 算法
算法的时间复杂度
算法的时间复杂度
41 0
|
4月前
|
算法 搜索推荐 图计算
图计算中的社区发现算法是什么?请解释其作用和常用算法。
图计算中的社区发现算法是什么?请解释其作用和常用算法。
30 0
|
22天前
|
算法 数据处理 C语言
【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)
【数据结构与算法】快速排序(详解:快排的Hoare原版,挖坑法和双指针法|避免快排最坏时间复杂度的两种解决方案|小区间优化|非递归的快排)
|
2月前
|
算法
TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
TOP-K问题和向上调整算法和向下调整算法的时间复杂度问题的分析
19 1
|
2月前
|
机器学习/深度学习 存储 缓存
数据结构--算法的时间复杂度和空间复杂度
数据结构--算法的时间复杂度和空间复杂度