关于数据结构与算法的基本理解

数据结构 + 算法 = 程序

数据结构是数据存储和组织的方式,旨在便于数据的访问和修改。
算法是对于输入的数据或数据的集合,通过一系列特定的计算,输出数据或集合。它描述的是一种期望的输入/输出关系。

1.从应用的角度来讲:
通过算法对数据进行操作就可以实现一些特定的功能,多个功能组合起来就是一个应用程序,此时它也就具备了和人交互的能力。

作为一个程序员,需要哪些功能并不是我们关心的重点。这主要是产品设计层次的问题,需要密切结合市场用户的需求。因此我们的重心就应该放到如何去完成一个个功能以及建立功能之间的联系上。
一般来讲,一个问题会有多种解决方案。学习数据结构与算法是为了让我们能够给每一个常用的功能,寻找最优的解决方案。

所谓最优的解决方案,其评判标准是时间和空间,使用数据结构与算法的目的就是为了能够以最少的空间和时间来解决问题。当然不同的问题对于时间和空间的评判标准是不同的,因此我们不能说某个数据结构或者算法就是最优秀的,只有结合实际问题,对于空间和时间权衡才可以得到其最优解。

优秀的算法的设计还要充分利用到硬件的特性,要知道物理硬件是一切软件的基石。如并行性,CPU的计算速度,内存外存的存取速度等等。

想要实现对数据的操作,首先需要拿到数据,这也是我们常说的查找算法。为了能让查找算法更好的工作,首先存储数据时就需要按照一定的规则来存。通过某一系列的规则存放起来的数据就能形成一个规律的整体,对外表现出一定的特点,这就是数据结构。当数据的存放有了一定的数据结构之后,我们才能结合查找算法更快地获取数据。

2.对于较简单的业务场景来说,少量数据的存取对于时间和空间的消耗并不算太大,甚至用户是无法感知到的。但是我们应该明白:一个程序不会只有一个用户,不会只存放少量数据,不会只在性能优秀的计算机上运行。如果仅仅以完成一个功能为目标,那只能算是最初级的手段。我们应当从一个程序所涉及到的各个层面去减少程序执行过程的性能消耗,直到极致精简,才可以保证我们的程序在复杂的场景和海量的数据下依然可以适应。

3.对于数据结构和算法的极致应该是每个程序员不断的追求.

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页