Re: [問題] 資料結構的意義
※ 引述《lovethree (lovethree)》之銘言:
: 我想請問一下,由於我是非科班,
: 我現在在學資料結構的時候,對於一些名詞都覺得好像似懂非懂,像是時間複雜度,
: 時間複雜度在課本上好像沒有講的很仔細,還有很多種類的樹,到底他們是要做什麼用?
: 我根本不知道樹在應用層面的意義,請問一下,我有學過C,現在唸資料結構還需要
: 什麼背景學科或是補充學科來加強的嗎?
Data Structure比較像是方法
不管是不是科班 這科都是入門級的科目 所以不用擔心
唯一需要的基礎大概就是要會一點點基本的程式邏輯吧
他就是在教你怎樣處理資料會 最省時間 or 最省空間 而已
什麼叫省時間 複雜度越低的越省時間
我打個比方
就像你的書房 你有20000本書
你的書要怎樣放才能讓你每次都在最快的時間內找到書
有新書要上櫃的時候
又不用花太多時間搬移其他書才找的到位置放
之後卻依舊能快速的找到想要的書
有整理過的複雜度就很低
因為你只要找幾次就可以找到了
先找分類(文史類)-> 再找櫃號 -> 按照字母排序找書 這樣只需要做3次"找"的動作
假設你要找20本書
你就最多只要做20 x 3 = 60 次找的動作
如果你沒有分類沒有排序
你每在20000本書中找一本可能平均要花10000次找的動作
你要找20本書的話
就大約是10000^20次找的動作
60跟10000^20的差異是多少我想應該很明白了
這其實就是一種簡單的資料結構(類似hash table)
Tree就是在做類似的事情
"讓你資料找的快"
當然
你可以不會某些很高深的tree,或是某些很複雜的演算法
我打個比方吧
同樣是念土木的
要蓋水壩/101的工程師 跟要蓋2層樓洋房的工程師
focus的東西是很不一樣的
端看你的工作性質囉 沒有所謂好壞 只有派不派的上用場罷了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.110.47
→
12/05 15:41, , 1F
12/05 15:41, 1F
→
12/05 23:39, , 2F
12/05 23:39, 2F
討論串 (同標題文章)