** 这主题博大精深这里先进行初步的介绍**
资料结构
资料结构可以想像成容器,每个物品都有适合放置的地方,衣柜裏面放衣服、鞋柜里面放鞋子、水壶里面装水,选到正确的存放方式会更有效率的处理那些存放的物品。
假如把衣服放进鞋柜=>不好拿(费时)、衣服会皱要烫(费力)把水装到衣柜=>根本来乱的,无意义的收纳资料结构就是要认识有怎样空间可以让你存(取),他们用甚么方式存(取)资料,这些空间的建立是为了之后搭配演算法的使用。
举例 : 甲同学每天早中晚都要按时吃药
方案一 : 準备一个药柜,当时间一到就去开药柜找到那个时段药吃的药拿来吃。
方案二 : 準备药盒,先把药分成早中晚药吃的分别放在标注为"早"、"中"、"晚"的盒子内,时间到就打开哪个盒子的药来吃。
哪个方案好呢?
放药 :
方案一的话不用分类,药就丢到柜子就好了。
方案二药先分类,先把早中晚的药都分开放置。
取药 :
方案一要先找到正确时段的药品,拆封,吃药。
方案二只要打开盒子吃,里面的药就是该时段的药,不用再确认一次。
在意放药时间的话就选择放在柜子里(方案一)
在意吃药快的话就选择分类到盒子里(方案二)因应需求选择适当的资料结构才能够提高处理效率
使用C#,找到一篇已经整理好的文章 :
https://www.huanlintalk.com/2018/02/choosing-net-collection-types.html
直接引用文章里面的图 :
先大概了解这些分类,之后找几个演算法来执行看看放在不同容器内效率差距会多高。