【数据结构】算法的时间复杂度跟空间复杂度

时间复杂度跟空间复杂度

算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源 。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。

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

时间复杂度的概念:

算法的时间复杂度就是一个函数,可以理解为跟执行次数n的关系

int main()
{
    int n=100;
    int i=0;
    while(i<n)
        printf("hello world\n");
    return 0;
}

比如上面这段代码,n为100次,这个循环要执行100次,执行次数跟n成正比。

用一个表达式就是O(n)=n.

常见的时间复杂度有:

O(1):常量级

O(n):线性级

O(n*):对数级*线性级

O(n²):平方级

O(n³):立方级

O():指数级

O(n!):阶乘级

对一个算法来说,极限的时间复杂度就是平方级,如果超过这个限度,算法实际意义几乎为0.

空间复杂度跟时间复杂度同理,要开什么级别的空间就是什么级别的空间复杂度。

数据结构相关概念

1、数据

表示信息的且能被计算机存储、处理的各种物理符号统称为数据。

2、数据项

具有独立逻辑,且不能再被分解的数据称为数据项。比如苹果的各种物理性质

3、数据元素

相关数据项的集合。比如一个苹果

4、数据对象

具有相同性质的数据元素构成的集合成为数据对象。比如水果

数据的逻辑结构:

1、集合结构:同类型数据集合起来

2、线性结构:数据元素之间存在一一对应的关系

3、树状结构:数据之间存在一对多的关系

4、图结构:数据之间存在多对多的关系

 集合结构

 线性结构

树状结构

图结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值