1.数据结构和算法概念
- 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。
- 数据结构和算法是相辅相成的,数据结构是为算法服务,算法要作用在特定的数据结构之上,二者不能孤立。
- 比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。
- 数据结构是静态的,只是组织数据的一种方式,如果不在它的基础之上操作、构建算法,孤立存在的数据结构就是没用的。
2.复杂度分析(上)
一、什么是复杂度分析?
- 数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。
- 因此需从执行时间和占用空间两个维度来评估数据结构和算法的性能。
- 分别用时间复杂度和空间复杂度两个概念来描述性能问题,二者统称为复杂度。
- 复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。
二、为什么要进行复杂度分析?
- 和性能测试相比,复杂度分析有不依赖执行环境、成本低、效率高、易操作、指导性强的特点。
- 掌握复杂度分析,将能编写出性能更优的代码,有利于降低系统开发和维护成本。
- 我们需要一个不用具体的测试数据来测试,就可以粗略地估计算法的执行效率的方法。
三、如何进行复杂度分析?