《数据结构与算法(C语言版)》——陈越
笔者自述:我是在学了Java后,对面向对象的思想有了点体会后,后头看陈越老师2012年视频的时候有了全新的见解,本篇文章将记录我再次观看学习数据结构后的体会与总结,部分用我自己的言语复述,如有看不懂的,多多包涵。
引子(我们要做的就是更好的增删改查):
- 一个例子:图书馆排放书籍的方式,我们可以有三种:往书架上随便放、按照首字母顺序排放、分类且按首字母顺序排放。
第一种,随便放,无论CRUD哪一个都很烦,查找从头开始,最多要查找N次。
第二种,查询可以通过二分法查询,最多查找log(N)次,但是插入操作就很繁琐,因为比如要放在第一位,那么所有的书都需要往后移一位。
第三种,在分类的时候就已经节省了很多时间了(但是也不完美,因为类分的过多就也很麻烦)。
数据结构是什么:
- 数据对象在计算机中的组织方式。
- 数据对象必定与加在其上的操作相关联。
- 完成操作所用的方法就是算法。
- 通俗来说就是:数据结构就是书在书架上的排列方法(看引子),书肯定跟排放书的操作相关联,而那些操作用的方法就是算法(上面的引子)。