文章目录
第三章 列表
day14
a
a1 从静态到动态
a2 从向量到列表
a3 从秩到位置
a4 实现
其中header和trailer对外部不可见
b
b1循秩访问
b2 查找
上图中①和②参数位置的不同,代表一个是向前查找,而另一个是向后查找
b3 插入和复制
上图从已有的列表复制来创建新的列表
b4 删除与析构
b5 唯一化
c 有序列表
c1 有序列表唯一化构思
c2 唯一化实现
c3 查找
d 选择排序
d1 选择排序
冒泡排序思路上与选择排序类似,都是每次选择出最大的。但是冒泡排序效率更低,因为是一步一步向后交换,而选择排序是选出最大的,直接一步将其转移到后端。
d2 实例
d3 实现
d4 推敲
上图中直接调用inserBefore和remove接口,其中涉及到new和delete操作,其复杂度是普通操作的100倍左右,可以考虑直接交换数据域;修改前驱和后继的指向等来完成。
d5 selectMax
d6 性能
e 插入排序
e1 插入排序
扑克牌码牌的场景
e2 构思
e3 对比
选择排序 vs 插入排序
e4 实例
减而治之
e5 实现
e6 性能分析
最好:O(n),已经有序
最坏:O(n^2)
e7 平均性能
e8 逆序对
其中I代表有序对的数目。
开始第四章