白话数据结构和算法01:一个例子看懂数据结构、算法是什么?之间有什么关系

微信关注公众号:程序员成长软技能  。日拱一卒,功不唐捐!

“ 程序 = 数据结构 + 算法 ”
计算机科学家、图灵奖得住N.Wirth(沃斯)曾这样描述“程序”,可见数据结构和算法对程序员的重要性,那么什么是数据结构和算法呢,他们之间又有什么关系?

举个栗子

假如你是个非常爱读书的人,涉猎也比较广,有文学、旅游、理财、技术等,每类的书也比较多,为此你需要有专门的东西去放置他们,以便保管和查看这些书,常见的选择有书架和书箱。

算法是什么

当我们想取一本书的时候,如何在箱子或者书架中查找它呢?可以一本一本的翻看确认,也可以先将书分类,或者按书的首字母排序摆放,查找时候可以“减小范围”的去找。这些查找书的方法,其实就是广义上的算法。

数据结构是什么

那什么是数据结构呢?例子中的书架和箱子,以及如何在其中摆放书就可以类比于数据结构。

怎么选择

是选用书架还是箱子,其实是和我们后续使用书的场景有关,对于很少使用或者不会使用的书,可以选择使用价钱低、占地方小箱子去存放。对于经常需要查阅使用的书,可以选择使用更方便查找和放回的书架。对于如何摆放书,也跟后续如何想如何查找书有关,比如先按书的分类然后再按书的首字母查找,也可以先按书的首字母然后再按分类查找。

总结

数据结构 存放数据(书)的“容器”(箱子或书柜),以及存放逻辑。
什算法 查找、写入(拿去、放回)等操作数据(书)的方法。
两者关系 两者密不可分,数据结构服务于算法,而算法又需要特定数据结构的支撑。
怎么选择 一般依赖于我们的使用场景和追求的目标。使用频率低用箱子,使用频率高使用书架。追求节省存放空间,选择箱子;追求操作速度,选择书架。
用途 数据结构和算法主要是解决如何低成本(存放空间&查找、写入时间)的操作数据的问题。

常用数据结构和算法

白话数据结构和算法01:一个例子看懂数据结构、算法是什么?之间有什么关系_第1张图片

白话数据结构和算法01:一个例子看懂数据结构、算法是什么?之间有什么关系_第2张图片

 

往期精彩回顾

  1. 《90后程序员职场报告》:平均月薪近20K,每6个程序员就有1个是女性

  2. 手把手教你画架构图,看一次就会了

  3. 8种最坑的SQL错误用法,第一个就很坑?

  4. 一个公司有没有未来,看它的老员工就知道了

  5. 【荐读】你靠什么在单位立足?

你可能感兴趣的:(数据结构,算法)