一、数值列表
- 顺序存储数据
- 连续存储
- 任意顺序访问,可变大小的列表数据结构允许增加、删除元素
- 例如: 酒店空置房间的列表、城市的列表和书单
操作
- 创建一个空列表
- 确定此列表是否为空
- 确定列表中项目个数
- 在列表中给定位置添加项目
- 在列表中给定位置删除元素
- 删除列表中所有元素
- 获取列表中给定位置的项目
二、递归
基本思想:
- 可以把要解决的问题转化为一个子问题,而这个子问题的解决方法仍与原来的解决方法 相同,只是问题的规模变小了。
- 原问题可以通过子问题解决而组合解决。
- 基础案例:存在一种简单的情境,是问题在简单情境下退出。
- 如果你对程序逻辑不够小心,你可能会错过一个基本的例子并进入无限递归 编码时要非常小心,因为它很难调试
三、搜索与排序
- 顺序查找
- 折半搜索
- 二分搜索
冒泡排序
- 重复列表进行排序,比较每对相邻的项目,如果它 们的顺序错误,则交换它们
- 在每次通过时,未排序的最大元素已被“冒泡 ”到阵列末端的合适位置
- 重复列表直到不需要交换,这表明列表已被排序
属性:
- 稳定
- O(1)额外的空间
- O(n2)比较和交换
- 适应性:O(n)接近排序时