关于数据结构的学习
开始重新学习数据结构,选择了《大话数据结构》这本书。好好学习,常记录。在毕业找工作之前,打好基础。
为什么会有数据结构这种东西存在,它是什么?
早期的计算机是设计来解决数值计算的问题的,计算机解决问题时,是需要先从具体的问题中抽象出数据模型,再配以解决问题的算法来使用这种数据模型,最终达到解决问题的目的。
后来,人们开始利用计算机来解决非数值的现实问题,而这些非数值问题之间的关系可谓错综复杂,前人开始对这些数据之间的关系进行整理,最后形成了数据结构这样一门学科。专门用来研究数据对象之间的关系以及他们的操作等等问题。
数据结构和算法可以说谁也离不开谁,数据结构本身的实现就要依赖于算法,而算法的魅力也得益于数据结构作为基础,才能够解决那复杂的问题。
说得更简单点,就是人们在用计算机解决现实问题的时候,发现要把这些现实问题抽象出数据模型,再用计算机去解决它是一个很重要的问题。然后就有人专门开设了数据结构这样一门学科来研究它。而我们今天后来人学习数据结构也就是学习前人总结出来的一些典型的数据对象之间的关系。
如何衡量一个算法的优劣?
算法,其实就是解决问题的思路,然后用代码去实现它。那根据什么来评判一个算法的优劣呢?计算机中是根据一个程序的时间复杂度,空间复杂度来判断的,好的算法自然就是运行时间短、占用内存小啦。不过主要研究的还是时间复杂度。
通常设计算法时,会通过程序执行次数来预先判断一个程序的时间复杂度,而忽略其他影响程序运行时间的非确定性因素,比如