算法和数据结构往往是互不分开的。 离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。 良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。
一、数据结构与算法的关系
算法和数据结构往往是互不分开的。离开了算法,数据结构就显得毫无意义,而没有了数据结构算法就没有实现的条件。良好的数据结构思想就是一种高效的算法,但是数据结构不等于算法。只有当数据结构用于处理某个特定问题类型的时候,数据结构才会体现为算法。
两者是相铺相成的;计算机是现代社会中用于解决问题的重要工具,支撑这个工具高效运转的就是其后的各种系统程序、应用程序。数据结构,是抽象的表示数据的方式;算法,则是计算的一系列有效、通用的步骤。算法与数据结构是程序设计中相辅相成的两个方面,是计算机学科的重要基石。算法的五个特性:输入、输出、有穷、确定和可行性。从输入输出角度考虑,算法要对数据进行处理,不可避免的要用到对数据进行组织。需要处理的信息越复杂,处理过程越复杂,那么良好的数据组织就越重要,也就体现在数据结构的选取上了。
延伸阅读:
二、存储结构
逻辑结构主要用于算法设计,而存储结构用于指导算法编程实现。存储结构有基本的两种结构:
顺序存储:逻辑上相邻的元素存储在物理位置相邻的存储单元中
链式存储:在数据元素中添加一些地址域或辅助结构,用于存放数据元素之间的关系。
顺序存储结构在内存中的地址是连续的,所以存取速度很快,但是在插入或删除操作效率低,因为插入或删除操作会移动数据元素。
链式存储结构在内存中地址可以是不连续的,插入和删除操作效率高,因为增加了寻址的操作,所以查找和遍历效率低。
同样的逻辑结构(线性、树形、图形、集合)既可以采用顺序存储结构也可以采用链式存储结构来存储数据和关系。存储结构的选择主要考虑算法的效率,算法的时间和空间哪个更好,具体选择哪种和需求有关,基本存储结构既可以单独使用,也可以组合使用。