数据结构和算法是什么
从广义上来看,数据结构可以理解成对数据存储方式的一种结构化的描述,而算法则是为达到某种目的,对数据进行处理的一系列的步骤。
其实,数据结构和算法的使用,在日常的工作和生活中,是很常见的。
举个生活中的例子来看:
图书馆的书的排列存储也是具有一定的结构的。比如说:按类别的不同,划分不同的区域;在特定的区域,再按照作家、发行时间等依据进行书架、行列的划分,对每一本书进行编号排列。
在这个例子中,
书籍 --> 数据项;
图书馆划分区域、书架、行列的规则 --> 数据存储的特点,这里面其实也暗示了数据操作方法:按照这样的存储方式,可以让人很容易想到一系列的步骤,来达到查找某一部图书的目的。这一系列的步骤,就是算法啦!
而狭义上来看,数据结构和算法可以看成是计算机领域中对于数据在内存中的存储方式以及数据的操作方法的统称。
一些常见的数据结构以及算法有:
数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;
算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
根据实际的应用场景,选用合适的数据结构来描述现实场景中问题,构建算法来解决问题!
总结
数据结构:
描述一组数据的存储结构,描述数据在内存中的存储方式。
算法:
描述对数据的操作方法。
数据结构和算法是相辅相成的:
数据结构是为算法服务的;
算法是作用在特定的数据结构上的。