数据结构之美
计算机的数据结构十分重要。数据就等同于点,数据结构就是数据中常用的具体关系。就如同在作画的艺术创作中,被抽象出来的具体的图形。
主要有以下结构:
1.线性表。数组是一串被编号并且固定了大小的单元,方便查找,但一旦需要插入一条新的数据则需要修改太多的内容。因此为了弥补这一个不足,科学家发明了链表的线性数据结构,放弃了编号,只需要将每一个被排列的数据分别指向其前后即可,这样的话,插入一个数据就很容易了,但因为没有编号,所以加大了查找的时间量。
2.二叉树数据。二叉树数据是为了让计算机更好的判断真假、比较大小、排序、挑选最大值这一类操作。首先,二叉树都有一个根,这个根在顶端;其次,从根开始有且只有两个分叉,并且二叉树的树叉还可以在分叉(数学上两个分支和N个分支是等价的,为简单起见也为了更好的通用性,本周只研究了二叉树)。二叉树排序的作用。其核心在于按顺序占据根部,然后层层的比较分左右,来确定最终的位置,排出数据的相对大小就是一个排序的过程。
启发:
1.智商和工作。对于非高智商的人,还是可以通过工具来弥补自己的不足。高智商转换为优势需要终身学习,当一个人认知不够,知识储备低,就算他拥有超高的智商也仅仅只是拥有解决几个题目的谈资。不要因为自己没有超凡的智力而懊恼,多学习其实也是提升智力的一种方式。真正的高手是需要高智商加上自己的持续学习,当他们到达一定高度,碰到了前人所未能触及的问题时,他们就会用自己思维能力去寻找最优解,并从解法中提炼出方便后人学习和应用的工具。
2. “提高效率就是少做无用功”。“提高效率”不是赶时间,而应该在保证效果的前提下快起来,保证效果就需要我们对我们所做之事进行分析和优化,主动砍掉一些无用功。“提高效率”不是一直向前跑,而应该定期的复盘,在复盘中去优化流程,从而剔除无用功。
反过来讲:少做无用功才能提高效率。在任务量一定的情况下,“快”和“好”应该是鱼和熊掌的关系。而我们希望二者兼得唯有从“任务量”这一条件出发,去发现其中的“无用功”,剔除它之后,所用的相对时间自然要比之前短,而获得的效果没有打折甚至更好,这才提高了效率。
以上是谷歌方法论中学到的知识。