数据结构与算法系列(1)--序

很久没有学习和练习算法了,但算法作为程序的灵魂,数据结构作为程序的躯体,不能忘记,从这篇文章开始,后面我准备整理一下几年都没有接触和学习的算法和数据结构。这一次我将依靠《算法》这本书来进行。

算法

算法是程序的灵魂这句话相信学习了编程的人都一定听到过,算法代表的是一个解决方案精确且完整的描述,是一系列解决问题的清晰的指令,是对数据状态从一个状态转换到另一个状态的描述。

解决问题的过程,即解决问题一步一步的步骤就是算法。

而且一个算法需要满足有效性和终止性:

有效性:算法是有效的,需要给出满足目标的结果。

终止性:算法是可以在有限的时间内完成的,因为无限长的时间才能实现目标是没有意义的!

为什么学习算法?

在生活中我们对事情的处理过程,都是是通过一个个的步骤来实现,解决问题的过程也正是在执行一个个算法,但是仅仅通过生活中的事情来学习和总结”算法“是低效的,我们在生活中学习过去前辈们的经验来处理现实中遇到的难题,同样在程序中为了让程序更加高效的完成任务,也需要学习和总结的算法。

为此我们需要学习和总结算法,来编写一个更加高质量的高效的可靠的程序,同时学习算法的同时也是锻炼我们的逻辑思维的过程,锻炼我们将一个问题进行拆分,然后分步实现,最后组装的能力。

数据结构

一个程序是由算法和数据结构组成的,算法作为灵魂,那么数据结构就是程序的躯体,灵魂和躯体,缺一不可。

数据结构除了最基本的存储数据表现数据的功能以外,它作为一种数据存储和组织的方式最大的用处在于提高运行效率或者存储效率。同时它也是算法的起始点、中间点以及结束点,算法的运行必然是在数据结构之上的。

常见的数据结构主要有:数组,背包,栈,队列,链表,树、、、等等

这些数据结构将在后面进行讲解

参考资料

百度百科_算法

百度百科_数据结构

END

2019-01-23 完成

2019-01-16 立项