数据结构与算法:揭示它们之间的联系与差异

发表时间: 2023-02-27 18:45


易道云出品

一、联系:程序=算法+数据结构

1.数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。

算法的操作对象是数据结构。算法的设计和选择要同时结合数据结构,简单地说数据结构的设计就是选择储存方式,如确定问题中的信息是用数组存储还是用普通的变量存储或其他更加复杂的数据结构。

2.算法设计的实质就是对实际问题要处理的数据选择一种恰当的存储结构,并在选定的存储结构上设计一个好的算法。不同的数据结构的设计将导致差异很大的算法。

3.数据结构是算法的基础。用一个形象的比喻:采茶的过程,茶园的结构就相当于计算机领域的数据结构,而茶叶就相当于数据元素。茶叶采摘之后,进行加工、运输这些“操作”技术就相当于算法。显然只有茶叶是不够的,还要有如何加工这些茶叶的技术。算法设计必须考虑到数据结构,算法设计是不可能独立于数据结构的。

另外,数据结构的设计和选择需要为算法服务。如果某种数据结构不利于算法实现它将没有太大的实际意义。知道某种数据结构的典型操作才能设计出好的算法。

总之,算法的设计同时伴有数据结构的设计,两者都是为最终解决问题服务的。

二、数据结构与算法的区别

数据结构关注的是数据的逻辑结构、存储结构以及基本操作,而算法更多的是关注如何在数据结构的基础上解决实际问题。算法是编程思想,数据结构则是这些思想的逻辑基础。