算法是程序的灵魂,数据结构是程序的身体
推导得到公式:程序=算法+数据结构
数据结构的定义:对数据的描述,以及在程序中指定用到哪些数据和这些数据的类型和数据的组织形式称之为数据结构
算法的定义:对计算机进行操作的步骤的要求被称之为算法。
由以上两点可以看到,数据结构和算法并没有想象中的那么难,数据结构可能还是模糊一点,但是对于算法来说那就是相当明白了,那就是进行计算机操作的步骤。
算法常见的固定套路被编辑成册,就有了那些听起来不明觉厉的算法(红黑树,贪心算法等等),这些东西一直以来让我觉得算法是一个复杂的玩意,没有一定的基础学习算法是不明智的,我目前所写的程序当中也没有涉及到算法的部分,直到看到了上面的定义,我才明白,算法即是程序,我所写的所有的函数,所有的判断,所有的循环都是算法,只能说是比较低级的算法,而我们常听到的那些算法,是高级版本。揭开算法的面纱,其本质就是解决问题的方式步骤而已。
有了这个认识之后,我们写程序的时候就知道该注意些什么了,你所优化的程序步骤,简化的程序结构,都是算法的一部分,而不是我们和算法毫无关系。那么数据结构呢?是不是也和算法一样,也是始终贯穿于程序中呢,我想是的,无论是声明数据变量,定义数据类型还是使用集合和数组,本质都是数据结构的问题,这样我们的提升目标便有了。
对于算法,可以直接接触《算法导论》等书籍,也可以从大学的高数开始慢慢补充。
对于数据结构来说,还是从高数开始吧