时间复杂度精讲

简介: 时间复杂度精讲

1、什么是时间复杂度和空间复杂度

1.1算法效率

算法效率分析分为两种:第一种是时间效率,第二种是空间效率。

时间效率被称为时间复杂度,二空间效率被称为空间复杂度。时间复杂度主要衡量的是一个算法的运行速度,二空间复杂度主要衡量的一个算法所需要的额外空间。在计算机发展的早期,计算机的存储容量很小。所以对空间复杂度很在乎。但是经过计算机行业的迅速发展,计算机的存储容量已经达到了很高的程度。所以我们如今已经不需要再特别关注一个算法的空间复杂度。

1.2时间复杂度的概念

算法中的基本操作的执行次数,为算法的时间复杂度

引例:

image.png

时间复杂度是一个估算,是去看表达式中影响最大的那一项(最高阶

所以最终的结果是O(n^2)

计算方式:

实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数,那么我们采用大O的渐进表示法。

推导方法:

1、用常数1取代运行时间中的所有加法常数。

2、只保留最高阶项。

3、如果最高阶项存在且不是1,则去除这个项目相乘的系数。

实例1:

image.png

O(n)

实例2:

image.png

实例3:

image.png

确定的常数次,都是O(1)!

实例4:image.png

分情况讨论,做最坏的打算

实例5:冒泡排序

image.png

实例6:二分查找(logn )image.png

实例6:阶乘递归

image.png

三目操作符:表示有3个操作数,N<2吗,若小于就返回N,否则返回阶乘

相关文章
|
机器学习/深度学习 存储 算法
精讲算法的时间复杂度
精讲算法的时间复杂度
|
4月前
|
算法
算法入门——二分查找
算法入门——二分查找
24 0
|
5月前
|
算法 搜索推荐
数据结构与算法⑫(第四章_中_续一)堆排序(详解)
数据结构与算法⑫(第四章_中_续一)堆排序(详解)
40 0
|
5月前
|
算法 索引
【刷题】 二分查找进阶
二分查找的算法思想是很好理解的。朴素二分很容易,但一般常使用左端点查找与右端点查找来解决问题。
30 0
|
存储
堆排序精讲
堆排序精讲
37 0
二分查找进阶版
二分查找进阶版
|
算法 Java 测试技术
二分查找算法简单进阶
这里将对刷题笔记一文末提及的几道推荐二分法进阶题目进行说明介绍。一道简单题加了一定的文字修饰,一道中等题巧用二分查找,以下为刷题笔记一链接,题目链接在文末提供。
148 0
|
算法
【算法】手把手学会二分查找
二分查找算法的详细讲解,如果你还不懂二分,看这篇就对了✨✨
116 0
|
算法 数据可视化 Java
数据结构与算法(一)时间复杂度
数据结构与算法(一)时间复杂度
63 0