数据结构和算法是为问题而生的
数据结构和算法是为问题而生的
之前讨论数据结构和算法的本质时说,计算机中数据结构存储仅两种方案,一种是连续存储的数组,一种是非连续存储的链表。
算法对数据结构是强依赖,不同的数据结构产生不同的算法。
后续的非线性的数据结构树、图,都是基于数组和链表的扩展而得,它们是一种逻辑结构而非存储结构。
而它们之所以产生,是因为单纯的使用数组和链表没法找到更高效的算法对复杂问题的数据进行处理。
这里的复杂问题,就是数据结构和算法演进的根因。
解决一个问题的思路:
1. 这个问题可以转换为什么样数据结构来处理——–问题转化
2. 针对这种数据结构,有哪些高效的算法——问题解决
3. 是否能够通过不同数据结构和算法的组合,更好的处理这个问题——方法优化
所有问题的计算机解决,一定是经历这三个步骤