Re: [問題] 資料結構的意義

看板Programming作者 (我要拿Ph.D.!!!)時間17年前 (2006/12/05 01:24), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《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
應該是10000*20吧...10000^20有點驚人
12/05 15:41, 1F

12/05 23:39, , 2F
阿...手誤 XD
12/05 23:39, 2F
文章代碼(AID): #15T5dJhB (Programming)
文章代碼(AID): #15T5dJhB (Programming)