首页 > 编程知识 正文

算法与数据结构的区别,数据结构是什么

时间:2023-05-06 09:34:35 阅读:159396 作者:4646

在许多数据结构教程中,由于数据结构知识和算法的混合,许多初学者以为数据结构是在讲算法,但这样的理解并不准确。

数据结构和算法之间是完全独立的两个学科,如果不说它们有关系,那就只是互利共赢、“1 12”的关系。

最明显的例子是,如果你认为数据结构是在讲算法的话,那你在大学里也学过《算法导论》。 后者几乎囊括了前者使用的所有算法。 需要同时开设这两门课程吗?

还可以从分析问题的角度组织数据结构和算法之间的关系。 通常,解决每个问题有以下两个步骤。

分析问题,从问题中提取有价值的数据并保存;

处理保存的数据,最终得到问题的回答;

数据结构负责解决第一个问题——数据存储问题。 通过前面的学习发现,对于数据不同的逻辑结构和物理结构,可以选择最佳的数据存储结构来存储数据。

剩下的第二个问题,属于算法的责任范围。 算法是从表面意义上理解的,即解决问题的方法。 我们知道,要评估某个算法的好坏,在解决同样问题的前提下,取决于哪个算法效率最高,但这里的效率是指处理数据和分析数据的能力。

因此,数据结构用于解决数据存储问题,而算法用于处理和分析数据。 这些是完全不同的两个领域。

因此,可以认为数据结构和算法存在“互利共赢,112”的关系。 在解决问题的过程中,数据结构必须配合算法选择最优的存储结构来存储数据,算法也可以根据数据存储的特点采用最优策略分析和处理数据,从而最有效地解决问题。

顺序表存储数据映像

图1序列图存储数据的示意图

例如,存在计算“1 2 3 4 5”的值的问题。 这个问题可以分析如下。

要计算1、2、3、4、5之和,必须先选择保存数据的方法。 在以前的学习中,我们发现数据之间存在“一对一”的逻辑关系,非常适合保存在线性表中。 结合算法的实现,我们选择顺序表而不是链表来保存数据,如图1所示。

然后选择算法。 由于存储在数据集中,因此可以使用初始值为0的变量num对存储的数据依次执行“相加”运算,并设计最终得到的新num值为最终结果的算法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。