复杂度
时间复杂度
-
概述
- O(xx):表示代码执行时间与数据规模增长的变化趋势,也叫作渐进时间复杂度
- 不依具体数据,不依具体硬件条件,可以粗略地估计代码执行效率
- 最好、最坏情况时间复杂度
- 平均复杂度
- 平摊复杂度
- 感觉跟平均复杂度很像,只是在估计方式上进行了一定程度的简化
空间复杂度
- 存储空间与数据规模之间的增长关系
数组
定义?
- 是线性表(只有“前”“后”两个方向)
- 连续的内存空间和相同数据类型的数据
特性
- 随机访问(a[k]_address = base_address + k * type_size
) - 低效的插入和删除
数组访问越界问题
可见 https://blog.csdn.net/ZhangDanzhu/article/details/90642312
链表
- 通过指针将一组零散的内存块串联在一起
单链表
- 头节点、尾节点、后继指针
- 尾节点指向空指针
循环链表
尾节点指向头节点
双向链表
单链表基础上增加前驱指针