一开始就来一些概念性的东西,其实并不是让人接受的方法,所以这里概念只是简单的提一提而已,可以用一种比较偏激的方式去理解它,到日后慢慢的再一点点的体会就可以了,我一直觉得学习编程,很多人说要先学好基础,但是其实很多基础是在于你应用了之后才能够真正明白的,算法与数据结构就是这样一门科学,光看当时是看懂了,可是有用吗,有,不过是当下,之后你就会忘得一干二净,怎么办呢,不要只是看,真的不要只是看,我现在很后悔投机取巧,一开始没有付出实践,到后面当你再次需要的时候,你会发现,这个东西我以前明明懂得,可是现在怎么就不懂,会有很多的懊恼,然后对自己怀疑,所以不要只是看,动手吧孩子。
好了废话少说了,下面就是几个我认为有必要提一提的概念
一, 数据结构分为物理结构和逻辑结构
数据结构里的逻辑结构::集合,线性,树形,图形
数据结构里的物理结构:顺序,链式,索引,哈希(散列)
注:对于一种数据结构,其逻辑结构是唯一的,但是它可能对应着多种存储结构
二,算法:指数据结构+程序设计
三 ,算法的5个重要特征
1,有穷性(可以简单的这么理解,有穷,当然是要求程序有开始也得有结束,不能无时无刻的运行下去,不然算法没有结果有什么意义呢?)
2,确定性(可以简单的这么理解,确定,当然是要求程序的算法结果是确定的,不可能自己写的算法到最后它的结果是你意料以外的吧?)
3,可行性(可以简单的这么理解,可行,当然是要求程序的运行条件是可行的,如果你的程序算法要求无限量的存储空间之类的,那这个算法就没有意义了)
4,输入
5,输出
四,算法的设计要求
1,正确性(正确性不用多说了,算法如果设计出来时错的那要来干嘛)
2,可读性(可读性是要你考虑,你的算法不是只给自己看,还要别人也能看的懂)
3,健壮性(健壮性,这个也容易理解,写了算法用一次出三次bug有意义吗?)
4,效率与低存储量要求(这个也容易理解,你一个算法要用一个地球的容量是完全没有意义的)