P S*_*ved 13 algorithm data-structures
这个问题是最后一根稻草; 我一直想知道它,
为什么人们会将"算法"和"数据结构"视为可以相互分离的东西?
我看到很多证据表明它们在程序员的脑海中是分开的.
在我看来,"数据结构" 是算法,因为"数据结构"的概念是关于操作进出结构的数据的算法.但这种观点似乎不是主流.我错过了什么?
编辑:不幸的是,我没有很好地提出问题.人们编写的程序中数据结构和算法的分离是很自然的,因为前者是数据,后者是函数(在STL这样的半功能框架中,它是整个事物的核心).
但上述观点以及问题本身指的是人们思考的方式,以及他们在头脑中安排知识的方式.这甚至不必与代码编写有关.
以下是人们将"算法"和"数据结构"分开时的一些链接:
Kon*_*rus 14
它们是不同的.考虑图表或树木更具体.现在,树似乎只是一棵树.但您可以按预订,订购或后序浏览(一种结构的 3种算法).
一个节点可以有多个或只有2个子节点.树可以是平衡的(如AVL)或包含其他信息(如数据库中的B树索引).这是不同的结构.但是你仍然用相同的算法遍历它们.
现在看?
另一点:算法有时是,有时不是独立于数据结构.某些算法在不同结构上具有不同的复杂性(在图中表示路径表示为列表或2D表).
我想说这是因为函数式编程将操作内容与操作本身分开。目标和行动当然是不同的,即使它们紧密相连。
它是面向对象的编程,将数据和操作放入单个组件中。如果面向对象更早出现的话,也许就会有一种学科。