算法时间复杂度计算

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

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月前
|
机器学习/深度学习 缓存 算法
Python算法设计中的时间复杂度与空间复杂度,你真的理解对了吗?
【10月更文挑战第4天】在Python编程中,算法的设计与优化至关重要,尤其在数据处理、科学计算及机器学习领域。本文探讨了评估算法性能的核心指标——时间复杂度和空间复杂度。通过详细解释两者的概念,并提供快速排序和字符串反转的示例代码,帮助读者深入理解这些概念。同时,文章还讨论了如何在实际应用中平衡时间和空间复杂度,以实现最优性能。
78 6
|
4月前
|
机器学习/深度学习 算法 程序员
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
本文是作者阅读《趣学算法》后的笔记,介绍了算法复杂度的基本概念,包括时间复杂度和空间复杂度的不同阶表示,并通过具体例子展示了如何计算和理解算法的效率。
69 2
读《趣学算法》:重开算法之门,时间复杂度与空间复杂度
|
2月前
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
72 0
|
2月前
|
搜索推荐 算法
插入排序算法的平均时间复杂度解析
【10月更文挑战第12天】 插入排序是一种简单直观的排序算法,通过不断将未排序元素插入到已排序部分的合适位置来完成排序。其平均时间复杂度为$O(n^2)$,适用于小规模或部分有序的数据。尽管效率不高,但在特定场景下仍具优势。
|
2月前
|
机器学习/深度学习 存储 缓存
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
文章主要介绍了排序算法的分类、时间复杂度的概念和计算方法,以及常见的时间复杂度级别,并简单提及了空间复杂度。
41 1
数据结构与算法学习十:排序算法介绍、时间频度、时间复杂度、常用时间复杂度介绍
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
74 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
存储 算法
算法的时间复杂度和空间复杂度
本文详细讨论了算法的时间复杂度和空间复杂度,包括它们的概念、计算方法和常见复杂度的对比,并通过多个实例解释了如何计算算法的时间和空间复杂度。
147 0
算法的时间复杂度和空间复杂度
|
3月前
|
算法 Python
震惊!Python 算法设计背后,时间复杂度与空间复杂度的惊天秘密大起底!
在 Python 算法设计中,理解并巧妙运用时间复杂度和空间复杂度的知识,是实现高效、优雅代码的必经之路。通过不断地实践和优化,我们能够在这两个因素之间找到最佳的平衡点,创造出性能卓越的程序。
42 4
|
2月前
|
算法 C语言
深入理解算法效率:时间复杂度与空间复杂度
深入理解算法效率:时间复杂度与空间复杂度
|
3月前
|
算法 数据可视化 数据安全/隐私保护
基于LK光流提取算法的图像序列晃动程度计算matlab仿真
该算法基于Lucas-Kanade光流方法,用于计算图像序列的晃动程度。通过计算相邻帧间的光流场并定义晃动程度指标(如RMS),可量化图像晃动。此版本适用于Matlab 2022a,提供详细中文注释与操作视频。完整代码无水印。
下一篇
DataWorks