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