iT邦幫忙

1

資料結構與演算法

  • 分享至 

  • xImage
  •  

** 這主題博大精深這裡先進行初步的介紹**

資料結構

資料結構可以想像成容器,每個物品都有適合放置的地方,衣櫃裏面放衣服、鞋櫃裡面放鞋子、水壺裡面裝水,選到正確的存放方式會更有效率的處理那些存放的物品。

  • 假如把衣服放進鞋櫃=>不好拿(費時)、衣服會皺要燙(費力)
  • 把水裝到衣櫃=>根本來亂的,無意義的收納

資料結構就是要認識有怎樣空間可以讓你存(取),他們用甚麼方式存(取)資料,這些空間的建立是為了之後搭配演算法的使用。

舉例 : 甲同學每天早中晚都要按時吃藥

方案一 : 準備一個藥櫃,當時間一到就去開藥櫃找到那個時段藥吃的藥拿來吃。
方案二 : 準備藥盒,先把藥分成早中晚藥吃的分別放在標註為"早"、"中"、"晚"的盒子內,時間到就打開哪個盒子的藥來吃。

哪個方案好呢?

放藥 :
方案一的話不用分類,藥就丟到櫃子就好了。
方案二藥先分類,先把早中晚的藥都分開放置。

取藥 :
方案一要先找到正確時段的藥品,拆封,吃藥。
方案二只要打開盒子吃,裡面的藥就是該時段的藥,不用再確認一次。

在意放藥時間的話就選擇放在櫃子裡(方案一)
在意吃藥快的話就選擇分類到盒子裡(方案二)
因應需求選擇適當的資料結構才能夠提高處理效率

使用C#,找到一篇已經整理好的文章 :
https://www.huanlintalk.com/2018/02/choosing-net-collection-types.html

直接引用文章裡面的圖 :
https://ithelp.ithome.com.tw/upload/images/20210630/20114067B1zuNm9TSk.png

https://ithelp.ithome.com.tw/upload/images/20210630/20114067ahjrUmR11Q.png
先大概了解這些分類,之後找幾個演算法來執行看看放在不同容器內效率差距會多高。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言