数据结构与算法-开篇
先说一下数据结构,对于老司机来说就是数据的使用方法,如果非给个概念的话个人觉得数据之间相互存在的一种或多种特定的关系的元素的集合
逻辑结构
常见的数据对象中数据元素之间的相互关系
* 集合结构
* 线性结构
* 树形结构
* 图形结构
物理结构
无论是什么数据对象具体体现在计算机存储体系中,必须自己的存储方式,也就是数据结构的物理结构
无非就是两种
* 顺序存储(通宵排队买火车票)
* 链式存储结构 (顺藤摸瓜,或者说地下党组织,链式结构)
存储的数据类型
存储的内容或者说要存储的数据类型是什么,一般来说就是性质相同的值的集合及定义在此集合上的一些操作
常见的操作
- 遍历(查询)
- 修改
- 增加
- 删除
使用的编程语言
正所谓天下武功最重要的是内功,就像天龙八部中鸠摩智有了内功之后又练习了逍遥派的小无相功便可轻松施展少林七十二绝技。
由此可见,重要的是内功而不是一招一式。
所以编程语言的选择一样,点到为止,更重要的是体会精神。
会大部分使用Java 来分析。
内容
该系列的主要内容,我想从以下几个部分操刀。
数据结构方面
- 线性表
- 栈和队列
- HashMap& LinkedHashMap
- Tree & Binary Tree
- 图 & 图的遍历和和最小生成树
- 图的最短路径与拓扑顺序
算法方面
- 排序与归并
- 递归与穷举
- 贪心和分治
- 动态规划和回溯
总结
总的来说该系列分为数据结构和算法,这两部分还是挺多的。 如果真的来讲这里边的东西,绝对难登大雅之堂。 因为真正的算法绝非是这三言两语,几篇博客所能讲清楚的。 所以该系列的目的只能算是个人的小小理解和记录。谢谢各位,欢迎批评指正拍砖砸蛋。