复杂度

时间复杂度(time complexity):估算程序指令的执行次数(执行时间)
大O表示法(Big O)
一般用大O表示法来描述复杂度,它表示的是数据规模 n 对应的复杂度
◼ 忽略常数、系数、低阶
9 >> O(1)
2n + 3 >> O(n)
n 2 + 2n + 6 >> O(n 2 )
4n 3 + 3n 2 + 22n + 100 >> O(n 3 )
写法上,n 3 等价于 n^3
◼ 注意:大O表示法仅仅是一种粗略的分析模型,是一种估算,能帮助我们短时间内了解一个算法的执行效率

空间复杂度(space complexity):估算所需占用的存储空间

什么是数据结构?

数据结构是计算机存储、组织数据的方式
线性结构
线性表(数组、链表、栈、队列、哈希表)
树形结构(二叉树、AVL树、红黑树、B树、堆、Trie、霍夫曼树、并查集)
图形结构

线性表是具有n个相同类型元素的有限序列

数组

数组是一种顺序存储的线性表,所有元素的内存地址是连续的。
数组最大的优点:快速查询
数组最好应用于“索引有语意”的情况

但并非所有有语意的索引都适用于数组
数组也可以处理“索引没有语意”的情况