极客算法01 | 复杂度分析

本文深入探讨了数据结构与算法的关系,并详细介绍了复杂度分析,包括时间复杂度和空间复杂度的概念、为何进行复杂度分析、如何进行分析以及常见的复杂度级别。此外,还讲解了复杂度分析的四个关键概念:最坏、最好、平均和均摊时间复杂度,强调在不同场景下选择合适的复杂度概念的重要性。
摘要由CSDN通过智能技术生成

1.数据结构和算法概念

  1. 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
  2. 数据结构和算法是相辅相成的,数据结构是为算法服务,算法要作用在特定的数据结构之上,二者不能孤立。
  3. 比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。
  4. 数据结构是静态的,只是组织数据的一种方式,如果不在它的基础之上操作、构建算法,孤立存在的数据结构就是没用的。

2.复杂度分析(上)

一、什么是复杂度分析?

  1. 数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。
  2. 因此需从执行时间占用空间两个维度来评估数据结构和算法的性能。
  3. 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。
  4. 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。

二、为什么要进行复杂度分析?

  1. 和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。
  2. 掌握复杂度分析,将能编写出性能更优的代码,有利于降低系统开发和维护成本。
  3. 我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法

三、如何进行复杂度分析?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值