初阶数据结构——时间复杂度

本文介绍了时间复杂度的概念,包括其定义、大O表示法的应用以及如何计算。强调了在现代技术背景下时间复杂度的重要性,特别是在算法设计和比较中。通过实例分析了常见算法的时间复杂度,如排序、查找等,并讨论了空间复杂度的相对次要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一.引入

二.时间复杂度的概念

1.例子

2.总结:大O渐进表示法(大O符号:描述函数渐进行为的符号)

三.如何计算时间复杂度?

四.结语



  1. 一.引入

算法是解决一个问题的方法,一个问题可对应多种算法,算法在编写成可执行程序后,需要消耗一定的时间资源和空间(内存)资源。因此评价一个算法的好坏,一般从时间和空间两个维度来考虑,及时间复杂度和空间复杂度。

时间复杂度主要是衡量一个算法运行的快慢,而空间复杂度主要衡量一个算法运行所需要的额外空间,在计算机早期,计算机储存容量是很小的,所以对空间复杂度很在乎。但随着技术的发展计算机的容量已经达到了一个很高的程度(摩尔定律:计算机大约每年翻一倍(但是现在技术到达瓶颈,已经失效))。所以我们现在不用特别关心一个算法的空间复杂度,现在更多关注的时间复杂度。

二.时间复杂度的概念

时间复杂度的定义:在计算机学科中,算法的时间复杂度是一个函数(F(N)=2*N……+N),它定量的描述一个算法运行所需要的时间,一个算法执行消耗的时间,理论上,是不能够算出来的,只有将程序发放在编译器上跑起来,才知道它运行的时间,但是在解决一个问题是要把每一个算法都敲出来上机测试吗?当然可以,但是!很麻烦,浪费时间,所以才有了时间复杂度这个分析方法。一个算法花费的时间与其中语句执行的次数成正比,所以算法的基本执行次数,为算法的复杂度。

即:找到某条基本语句与问题N之间的数学表达式,就是算出了该算法时间的复杂度。

1.例子

不难看出执行次数的函数F(N)=N……2+2N+10,当N取不同值时执行次数也不同,各项对次数的影响各不相同,随着N的不断增大(不用考略N值很小的情况,计算机的cpu主频单位时间内计算次数上亿次),后两项对函数的大小影响微乎其微,所以就可忽略掉,只取最高次数项--N……2

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值