大学期间的一本蓝色为主色调的课本,长约20厘米,宽约13厘米,封面中央写着“数据结构”四个大黑字。犹记当时老师第一节课,意味深长地说“这是一门基础课,很重要,虽然你们现在可能不能完全理解”。那时,我相信老师说的很重要的话,但是我心中充满“不是所有人都能理解,但是我能”的自信。~~,每每回头瞅瞅这门知识的时候,都感觉到了需要自信,也需要踏实细节。
不同时期对于“数据结构与算法”可能会有不同深度、不同层次的理解与扩展。此刻我一个一个来说“数据”、“结构”,“算法”。
数据
“我”可以是一个数据,“小左”、“小右”、“小尚”、“小夏”都是数据
“我爱吃的琵琶”、“我喜欢的书籍”、“我常做的运动”... 都是数据
“"我",“爱吃琵琶”,“喜欢看村上春树的小说”,“经常做的运动是瑜伽”...”这个对象也是一个数据
数据 就是我们的研究对象,我们可以研究自己、他人、一群人、一类人、一朵花、一簇花...
结构
“我”与“小左”、“小右”、“小尚”、“小夏”都是同学关系,平等友爱的集合结构
“我”和“小左”是同事关系,“小尚”是我们的组长, 分明的树结构
“我”和“小稻”是密友,“小稻”和“小右”也是密友,“我”和“小右”也是密友,“小右”和“大左”是密友... ,神秘有趣的图结构
“我”和“小稻”、“小右”去买面包,排队结账,“我”是第一个,后面是“小稻”,最后是“小右”, 规矩乖乖有礼貌的线性结构
“大稻”这个人:
爱好:有颜色的小物件、村上春树、瑜伽、软软干净的草坪上睡觉【集合】
亲人:哥哥、姐姐、爸爸、妈妈、爷爷、侄女【树】
专业:web前端开发工程师
业余:画画、写作 【开发、画画、写作 互相关联促进:图】【开发工作做好了 - > 画画、写作: 线性】
关于“树结构”的一点反思:
有很多叶子的树,一下子会吓住一些人去认识她。刚开始也觉得她不好描述,深且杂。
描述一棵树的时候就去描述她的叶子、枝干、根。这又有什么难的呢?只是被“树的表象、树的概念所牵制住了” 。
正如我要写一个人物,就去观察她的眼睛、鼻子、皮肤、手、衣着、声音、动作、朋友、家人....然后写出来
正如我要画一朵花,就去观察花瓣、花蕊、花杆、花的颜色、花的香味、然后画出来
算法
有一群小朋友,按照身高从高到低排,怎么操作? 【大家可能都经历过的场景】
情境一:
操场上一排一排的小朋友,排之间只有一人距离,3年级的男生一排还没有排好。
老师说“以中间小稻同学为中心,第一个同学开始,如果比稻矮就不动并且举手报告;最后一个同学开始,如果比稻高就不动且举手报告,
然后这两个同学交换位置,前后比较到稻同学时,稻同不要动,稻以前的同学为一队,稻以后的同学为另一对,开始之前同样的比较交换,同学们!明白了吗?”
“老师,我们不明白。。。明白。。”~~小同学们呼叫着。
情境二:
操场上,3年级7班的同学们在上体育课,有几个调皮的男生迟到打闹,老师将他们单独叫到一个空旷的地方,
“按照身高从高到低排队,开始,马上!”
...
有很多经典高效的算法,如何选择呢?