数据结构与算法(Python)


Python数据结构与算法
1. 引入概念
1.1. 第一次尝试
1.2. 算法的提出
1.3. 第二次尝试
1.4. 算法效率衡量
1.5. 算法分析
1.6. 常见时间复杂度
1.7. Python内置类型性能分析
1.8. 数据结构
2. 顺序表
2.1. 顺序表的形式
2.2. 顺序表的结构与实现
2.3. 顺序表的操作
2.4. Python中的顺序表
3. 链表
3.1. 单向链表
3.2. 单项循环链表
3.3. 双向链表
4. 栈
4.1. 栈结构实现
5. 队列
5.1. 队列的实现
5.2. 双端队列
6. 排序与搜索
6.1. 冒泡排序
6.2. 选择排序
6.3. 插入排序
6.4. 快速排序
6.5. 希尔排序
6.6. 归并排序
6.7. 常见排序算法效率比较
6.8. 搜索
7. 树与树算法
7.1. 二叉树
7.2. 二叉树的遍历

Why?

我们举一个可能不太恰当的例子:

如果将最终写好运行的程序比作战场,我们码农便是指挥作战的将军,而我们所写的代码便是士兵和武器。

那么数据结构和算法是什么?答曰:兵法!

我们可以不看兵法在战场上肉搏,如此,可能会胜利,可能会失败。即使胜利,可能也会付出巨大的代价。我们写程序亦然:没有看过数据结构和算法,有时面对问题可能会没有任何思路,不知如何下手去解决;大部分时间可能解决了问题,可是对程序运行的效率和开销没有意识,性能低下;有时会借助别人开发的利器暂时解决了问题,可是遇到性能瓶颈的时候,又不知该如何进行针对性的优化。

如果我们常看兵法,便可做到胸有成竹,有时会事半功倍!同样,如果我们常看数据结构与算法,我们写程序时也能游刃有余、明察秋毫,遇到问题时亦能入木三分、迎刃而解。

故,数据结构和算法是一名程序开发人员的必备基本功,不是一朝一夕就能练成绝世高手的。冰冻三尺非一日之寒,需要我们平时不断的主动去学习积累。

通过三天的学习,我们希望让大家能理解其概念,掌握常用的数据结构和算法。