一张图理解数据结构与算法的关系

Posted 架构之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一张图理解数据结构与算法的关系相关的知识,希望对你有一定的参考价值。

架构干货,关键时刻马上送达!


一句话:相互之间存在关系的数据元素的集合就是数据结构,算法是解决特定问题的有限求解步骤。


一张图:

一张图理解数据结构与算法的关系


学习数据结构与算法有什么用呢?拿一个厨师的厨艺来比较的话,真正的大厨一般不是那种能做各种花样的菜式的人,而是能把普通的菜炒出不平凡的效果的人。就像“酸辣土豆丝”,不同的人炒出来的效果就不一样,从一道简单的菜就可以看出厨师的功底,而数据结构与算法就是程序员的功底。


回到图上,由图中可以看出,数据结构操组的对象是数据元素,即他们有相同的属性(属性也取决于观察者的角度),它们之间的存在的关系会产生不同的结构,数据元素之间的关系+操作构成了数据类型,对已有的数据类型进行抽象就构成了抽象数据类型(ADT),就是封装了值和操作的模型。


在看算法这一块,就是根据输入,设计可行的计算方法并用有限的可执行步骤描述出来(程序),最终得到确定的输出。(从中也可以看出算法的5大特性:输入,输出,有穷性,确定性,可行性)。


评估一个算法的好坏常用时间复杂度,时间复杂度的计算方法也可以分为3步,具体步骤图上已经给出,举个例子来说(不考虑输入输出的时间以及每个步骤之间的时间差异):如果程序需要执行3n² + 10n + 20的 次,那么第一步将化简为 3n² + 10n + 1,第二步将化简为 3n²,第三步化简为n²,最终时间复杂度为 O(n²)。


线性表,堆栈,串,树,图是常见的用抽象数据类型定义的结构,查找和排序是常见的算法。

       

来源于:

https://blog.csdn.net/qq_33414271/article/details/80366014



近期干货

资料:

干货:

干货:

干货:

干货:


 

以上是关于一张图理解数据结构与算法的关系的主要内容,如果未能解决你的问题,请参考以下文章

我以前一直没有真正理解支持向量机,直到我画了一张图!

一张图理解prototypeproto和constructor的三角关系

一张图理解prototypeproto和constructor的三角关系

一张图理解JVM虚拟机结构

图计算:一张图秒级洞察千亿级复杂关系

图像比对的原理或者算法