学习数据结构的笔记——时间、空间复杂度

知识总结:

1.数据结构非常重要,在校园的招聘笔试中经常出现,这关乎一份好的offer

2.重要的学习方法,力扣的算法题,

3..递归的时间复杂度 = 递归次数*每次递归函数中次数

递归的空间复杂度 = 递归的深度

4.O(N)是一种数学符号,用来描述函数渐进行为

5.时间复杂度是程序运行的大概次数

6.空间复杂度是程序变量的个数

一、简单的介绍一下数据结构的重要性

1.什么是数据结构

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。

对我而言,数据结构的学习就像是我们在学习建造各种使用方式不同的粮仓,当然这是我的一种理解。。

2.如何学习数据结构

数据结构是针对程序员的,相对非专业的人来说,他们不需要去了解数据结构,所以这也是我们在与其他程序员的对比项也是加分项。

在学校时,老师也常说这是一种思维,我们是可以不断的练习来强化我们的,所以多大佬的书籍会让我们受益匪浅的,多于其它的同学或老师讨论我们也许或找到新的思路,多做训练题会让我们在遇见算法和编程题时有更加宽阔的思维和方法。

总结:1.多读书 2.多请教 3.多做题

二、时间复杂度——算法中的基本操作的执行次数

相对与女同学我觉得男生会更好的理解时间复杂度,它是用来衡量一个算法的性能的方法,所以相对所有的算法运行他必须时公平的,而计算机的运行快慢的影响因素太多,有平台的限制,处理器的好坏,运行内存的大小等,并且一个程序的运行耗费的时间目前是无法计算的,只有正式的运行才能确定时间的长短,但事实上文明很难会一 一测量。

所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。

注意的要点:

1.实际中我们计算时间复杂度时,我们其实并不一定要计算精确的执行次数,而只需要大概执行次数.

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

3.在修改后的运行次数函数中,只保留最高阶项

4.如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。

5.最坏情况:任意输入规模的最大运行次数(上界)

平均情况:任意输入规模的期望运行次数

最好情况:任意输入规模的最小运行次数(下界)

6.实际中一般情况关注的是算法的最坏运行情况

7.递归函数的时间复杂度= 递归次数*每次递归函数中次数

例:

1.它的执行次数是n*n,所以它的时间复杂度为O(n*n)

 

2.他的时间复杂度是O(N),系数可以化为1

 

3.他的时间复杂度是O(M+N),M与N的大小我们是未知的,不能确定谁的影响更大,所以都留下

 

4.他的时间复杂度是O(1),已知常数的时间复杂都是1

 

5.他的时间复杂度是O(N),相对算法的时间复杂度,我们选择的是最坏情况

 

三、空间复杂度——变量占用存储空间大小的量度

随着计算机内存的不断增大,限制算法的可能性越来越小,空间复杂度,相对时间复杂度的重要性,空间复杂度在未来的考察不占更大的比重

例:

1.他的空间复杂度是O(1),对数组进行排序,没有新开辟变量空间 

2.他的空间复杂度是O(N),开辟的内存大小是未知的,所以我们按照最坏情况

 

3.他的空间复杂度是O(N),递归的空间复杂度 = 递归的深度

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
cda备考学习学习笔记——基础知识篇(二)主要涉及了计算机科学与技术领域的基本概念和知识。 首先,它介绍了计算机网络的基础知识。网络是将多台计算机通过通信链路连接起来,使它们能够相互通信和共享资源的系统。笔记中详细介绍了网络的组成、拓扑结构和通信协议等重要内容。 其次,笔记还解释了计算机系统的基本组成。计算机系统由硬件和软件两部分组成,其中硬件包括中央处理器、存储器、输入输出设备等,而软件则分为系统软件和应用软件。笔记详细介绍了各种硬件和软件的功能和作用。 此外,笔记还对数据库管理系统进行了介绍。数据库管理系统是一种用于管理和组织数据的软件系统,它能够实现数据的存储、检索和更新等操作。笔记中详细介绍了数据库的概念、结构和操作等内容。 最后,笔记还包括了算法和数据结构的基础知识。算法是解决问题的一系列步骤和规则,而数据结构则是组织和存储数据的方式。笔记中介绍了常用的算法和数据结构,如排序算法、树和图等。 总之,通过学习CDA备考学习笔记中的基础知识篇(二),我们能够更好地理解计算机网络、计算机系统、数据库管理系统以及算法和数据结构等相关概念和知识。这些基础知识对于我们深入研究计算机科学与技术领域是非常重要的,也为我们日后的学习和工作奠定了坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山山人行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值