4.14 小结 1

时间复杂度

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

我们会用大O符号表示法

T(n)=O(f(n))

举个例子

我们用一个单位时间来表示,第一行的耗时就是一个单位时间,第三行和第四行都是n个单位时间。(第二行和第五行都是符号,可以忽略)所以总时间是2n+1;即:T(n)=2n+1*单位时间。可以看出,这个算法的时耗是跟随着n的变化而变化的。如果当你无限大的时候,那么(2n+1)中的常数1和倍数2的意义并不大,因此可以直接简化为T(n)=O(n)。

常见的时间复杂度量级(从低到高)

常数阶O(1)

对数阶O(logn)

线性阶O(n)

线性对数阶O(nlogn)

平方阶O(n^2)

指数阶O(2^n)

阶乘阶O(n!)

最差与最佳时间复杂度

当num[?,...,1],当末尾元素为1时,需要历遍数组,此时达到最差时间复杂度O(N)

当num[1,...,?],当首位元素为1时,无论数组多长都不需要历遍数组,此时达到最佳时间复杂度O(1)

空间复杂度

算法相关空间

1.输入空间(输入数据)

2.暂存空间(暂存数据 栈帧空间 指令空间)

3.输出空间(输出数据)

常见类型

尾递归

函数在尾位置调用自身

特点

1.在尾部调用的是自身函数

2.使计算机占用常量栈空间

数据结构

数据结构是在计算机中组织与存储数据的方式

分类

主要分为逻辑结构与物理结构

数组

优点

访问元素速度高效

缺点

初始化后长度不可变

插入或删除元素效率低下

链表

一种线性数据结构,其中每个元素都是单独的对象,各个元素之间通过指针连接

优点

插入与删除节点操作效率高

缺点

链表访问终点效率低

链表的内存占用高

常见链表类型​​​​​​​


单向链表

环形链表

双向链表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值