Re: [請益] 資料結構重要程度

看板 Tech_Job
作者 iceberg (冰山先生)
時間 2019-10-26 08:28:10
留言 88則留言 (35推 0噓 53→)

聽說成大將來有一種新的考試入學方式, 考生全部關起來,寫一整天code? 很好啊,沒coding能力就先淘汰,造福業界, 最近我部門來了一個新人, 問我為什麼要用linked list? 還要memory alloc/free很麻煩, 用array很方便不是嗎? 嗯...好喔。 資結是基礎內功, 一個懂資結、演算法、OS寫出來的code 跟一個array從頭用到尾的code 以效能、空間、clean code的等級落差, 在同公司的薪水價差大概是 「完全沒差」 所以不用太在意, 只要學長姐考古題背好,面試上就好(咦?) : 資料結構這門課到底重不重要啊 : 如果非資工系的工學院學生沒修DS 但是會寫C : 對未來找工程師職缺(非軟體工程師)影響大嗎??? --
※ 批踢踢實業坊(ptt.cc), 來自: 101.15.214.79 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Tech_Job/M.1572049692.A.5A6.html

hongsiangfu: 非本科,借問alloc/free太常使用造成的破碎該如何處 10/26 08:53

hongsiangfu: 理,平臺是32bit的mcu(非arm或dsp) 10/26 08:53

HSUFIT: 自己弄一塊memory pool來處理特定用途(大小)的allocatio 10/26 09:08

HSUFIT: n/free 10/26 09:08

alongalone: 認真來說,他的說法並沒有錯. 10/26 09:25

DFM: 現在硬體能力強資源也很足夠,大部分的應用還真的看不出來差 10/26 09:45

DFM: 異。只要人的感受不覺得慢就好。 10/26 09:45

ko27tye: 這篇才是真的,有四大背背考古題隨便都有工作 10/26 09:48

iiiii: wp sp解決一樓問題 10/26 09:50

whoknow0923: 看用途吧,殺雞還需要用牛刀嗎 10/26 09:53

k268185: 推一個 只要performance沒有明顯差異 能簡單就簡單 10/26 09:55

alumi7: 去看slab的code 10/26 10:03

Jyery: 寫太難後面接手的也很難維護 10/26 10:34

yamakazi: 這問題我有想過 list好處是能夠依照需求隨時增加減少 ar 10/26 10:35

yamakazi: ray在程式執行時比較難隨時增減 array好處則是儲存空間 10/26 10:35

yamakazi: 比list小 但壞處時是沒辦法做二元搜尋樹 10/26 10:35

yamakazi: 至於一樓的問題 我記得那通常是OS處理的問題 mcu似乎無 10/26 10:39

yamakazi: 解 10/26 10:39

yamakazi: array的大小要在編譯前決定 10/26 10:40

yamakazi: 一樓的問題 看看能不能自己改或做做一個RTOS 10/26 10:42

yamakazi: 光是搜尋樹的問題 array應該就慘敗 10/26 10:43

yamakazi: C++裡面用到map的話 map本身也是紅黑樹 10/26 10:44

yamakazi: 如果只是控制簡單mcu 的確用不到list 但如果你是寫大型 10/26 10:46

yamakazi: 資料網站後端就要會 10/26 10:46

yamakazi: 不過很多人只會寫C來操作mcu 寫個forwhileifelse 就覺得 10/26 10:47

yamakazi: 自己會寫C++ 會資結演算法 10/26 10:47

yamakazi: 問寫韌體的人怎麼樣用人名快速查找電話 他只會用二分搜 10/26 10:51

yamakazi: 尋法不會用紅黑樹map 10/26 10:51

yamakazi: 但有看過DS ALGO 的人就知道怎麼做 差別大概是在這裡 10/26 10:53

chandlerkc: 有些情況array 有效率得多 10/26 10:56

NCTU5566: 推yamakazi大 10/26 10:57

NCTU5566: 學DS和演算法開始會用時間複雜度和空間複雜度來分析問題 10/26 10:59

NCTU5566: ^就是開始會用 10/26 11:00

NCTU5566: 我以前在電機系學的C語言頂多教到linkedlist和array差異 10/26 11:00

NCTU5566: 當然也會提到array存取方便linkedlist空間使用等特性 10/26 11:01

NCTU5566: 但沒提到BigO的概念 BigO的概念是真的修資工DS Algo才會 10/26 11:02

NCTU5566: 然後很多時候為了實現某個演算法需要用哪個DS輔助 10/26 11:02

NCTU5566: 因此兩個很常綁在一起上,但也有獨立只教algo的課 10/26 11:03

NCTU5566: 獨立教algo的可能就會教比較概念的greedy divide&concur 10/26 11:04

NCTU5566: dynamic programming但要怎樣寫成扣很多時候要某些DS幫 10/26 11:04

badyy: 製造業或賣硬體還是可學起來然後照環境使用!有人想倒著用 10/26 11:06

badyy: 就入境隨俗倒著用幫他做大一點開山立派 XD 10/26 11:06

NCTU5566: 一點淺見覺得可以修DS和algo當作評估自己想不想走CS 10/26 11:07

NCTU5566: 有錯再請前輩們打臉修正QQ 10/26 11:08

NCTU5566: 然後寫韌體真的相對用比較少DS和Algo 10/26 11:09

NCTU5566: 我同學在IC廠寫韌體他真的不會tree graph這些東西 10/26 11:09

NCTU5566: 他最多就會用array linkedlist和stack queue 10/26 11:10

odanaga: 覺得不懂os問題比較大 10/26 11:14

fallinlove15: 一堆有現成解決記憶體管控的工具可以用 為什麼不學 10/26 11:18

fallinlove15: 一下呢 10/26 11:18

JasperChang: 紅黑樹麻煩 資源有限不如用 hash table 10/26 11:34

Litfal: linkedlist我還算熟,但老實說真的不常用 10/26 11:52

qwerasdf6102: 額 hash雖然查找快 但所佔的空間更大吧 10/26 12:10

YcL5566: 能用mem換來的都是小事 10/26 12:24

j0958322080: 不是寫IC的記憶體都不重要 10/26 12:30

IKnowWhy: 如果真的要循序處理array比較快好嗎... 10/26 12:32

flysonics: 寫FW的 記憶體常常就那麼丁點大 沒多少機會讓你用複雜 10/26 12:33

flysonics: 的東西 除非就像前面推文講的一樣你要刻類似RTOS之類的 10/26 12:35

j0958322080: 不一定耶,多維陣列速度搞不好比指標慢 10/26 12:37

matyih: 現在很多系統是engineer time比computer time貴 10/26 12:44

matyih: 簡單好維護的code比完全優化的更實際 10/26 12:45

lunashining: 推除非IC記憶體, 硬體廠一些老鳥覺得會C很厲害完全 10/26 12:47

lunashining: 不知道在秋三洨... 10/26 12:48

flysonics: 現在很少這種老人了吧 都嘛大碼農時代惹 10/26 12:51

Litfal: 寫dsp的表示qq,連alloc都沒得用 10/26 13:15

cjo4zo2k7al: 結論正確給推 10/26 13:38

RedDracula: 看用途 END 10/26 14:37

bizer: 說實在,沒有大量數據處理,哪有需要那些資料結構,整天cal 10/26 14:59

bizer: l函數庫的就更不用說了 10/26 14:59

soooooooo: 結論正確 10/26 15:30

Kuba4ma: 結論正確xd 10/26 15:58

hongsiangfu: 感謝各位大大無私分享 10/26 15:58

rodion: 張飛比岳飛 array如何O(1) delete? 10/26 16:25

rodion: 一堆瞎扯結論正確的 就不要開玩笑被別人當真的 會害到人 10/26 16:27

gbs0856: 看推文,就知道台灣業界為何不重視軟工,出不了殺手級應 10/26 18:14

gbs0856: 用服務,只配做代工 10/26 18:14

aasssdddd: 寫好了還比別人用其他方法解的慢… 10/26 20:35

hanshsu: driver 裡面很多 listhead 10/26 20:50

snoopy790428: 面試就是頭過身就過 10/27 00:01

vm3tl6vup: 一樓,去搜尋reap allocator 10/27 02:44

veru: 會用array 就表示沒有要delete了 為什麼要care 如何O(1) 10/27 13:11

veru: Delete? 當function的local variable 就夠了 10/27 13:13

veru: 舉個例 做counting sorting 你會用array 當bucket還是list? 10/27 13:14

jason710068: 假設是寫 c++的話,當然用stl啊,誰在那邊跟你造輪子 11/03 13:26

p1234891: 不好意思我有看到前面有說如果做記憶體 IC 才需要懂資 11/06 23:59

p1234891: 料結構 那我想請教一下各位前輩 如果未來想走通訊 Baseb 11/06 23:59

p1234891: and IC 或是 DSP IC 設計的話 有需要修資工必修:資料 11/06 23:59

p1234891: 結構和演算法嗎?感謝回覆 ~ 11/06 23:59

您可能感興趣