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

作者: iceberg (((You only live once)))   2019-10-26 08:28:10
聽說成大將來有一種新的考試入學方式,
考生全部關起來,寫一整天code?
很好啊,沒coding能力就先淘汰,造福業界,
最近我部門來了一個新人,
問我為什麼要用linked list?
還要memory alloc/free很麻煩,
用array很方便不是嗎?
嗯...好喔。
資結是基礎內功,
一個懂資結、演算法、OS寫出來的code
跟一個array從頭用到尾的code
以效能、空間、clean code的等級落差,
在同公司的薪水價差大概是
「完全沒差」
所以不用太在意,
只要學長姐考古題背好,面試上就好(咦?)
※ 引述《a23395080 (路過看看)》之銘言:
: 資料結構這門課到底重不重要啊
: 如果非資工系的工學院學生沒修DS 但是會寫C
: 對未來找工程師職缺(非軟體工程師)影響大嗎???
作者: hongsiangfu   2019-10-26 08:53:00
非本科,借問alloc/free太常使用造成的破碎該如何處理,平臺是32bit的mcu(非arm或dsp)
作者: HSUFIT (FireDance)   2019-10-26 09:08:00
自己弄一塊memory pool來處理特定用途(大小)的allocation/free
作者: alongalone (沿著孤單的路)   2019-10-26 09:25:00
認真來說,他的說法並沒有錯.
作者: DFM (wen)   2019-10-26 09:45:00
現在硬體能力強資源也很足夠,大部分的應用還真的看不出來差異。只要人的感受不覺得慢就好。
作者: ko27tye (好滋好滋)   2019-10-26 09:48:00
這篇才是真的,有四大背背考古題隨便都有工作
作者: iiiii (I take 5)   2019-10-26 09:50:00
wp sp解決一樓問題
作者: whoknow0923 (whoknow)   2019-10-26 09:53:00
看用途吧,殺雞還需要用牛刀嗎
作者: k268185 (k268185)   2019-10-26 09:55:00
推一個 只要performance沒有明顯差異 能簡單就簡單
作者: alumi7 (none)   2019-10-26 10:03:00
去看slab的code
作者: Jyery (文帝)   2019-10-26 10:34:00
寫太難後面接手的也很難維護
作者: yamakazi (大安吳彥祖)   2019-10-26 10:35:00
這問題我有想過 list好處是能夠依照需求隨時增加減少 array在程式執行時比較難隨時增減 array好處則是儲存空間比list小 但壞處時是沒辦法做二元搜尋樹至於一樓的問題 我記得那通常是OS處理的問題 mcu似乎無解array的大小要在編譯前決定一樓的問題 看看能不能自己改或做做一個RTOS光是搜尋樹的問題 array應該就慘敗C++裡面用到map的話 map本身也是紅黑樹如果只是控制簡單mcu 的確用不到list 但如果你是寫大型資料網站後端就要會不過很多人只會寫C來操作mcu 寫個forwhileifelse 就覺得自己會寫C++ 會資結演算法問寫韌體的人怎麼樣用人名快速查找電話 他只會用二分搜尋法不會用紅黑樹map但有看過DS ALGO 的人就知道怎麼做 差別大概是在這裡
作者: chandlerkc (kcyeh)   2019-10-26 10:56:00
有些情況array 有效率得多
作者: NCTU5566 (交大彭于晏)   2019-10-26 10:57:00
推yamakazi大學DS和演算法開始會用時間複雜度和空間複雜度來分析問題^就是開始會用我以前在電機系學的C語言頂多教到linkedlist和array差異當然也會提到array存取方便linkedlist空間使用等特性但沒提到BigO的概念 BigO的概念是真的修資工DS Algo才會然後很多時候為了實現某個演算法需要用哪個DS輔助因此兩個很常綁在一起上,但也有獨立只教algo的課獨立教algo的可能就會教比較概念的greedy divide&concurdynamic programming但要怎樣寫成扣很多時候要某些DS幫
作者: badyy (nick)   2019-10-26 11:06:00
製造業或賣硬體還是可學起來然後照環境使用!有人想倒著用就入境隨俗倒著用幫他做大一點開山立派 XD
作者: NCTU5566 (交大彭于晏)   2019-10-26 11:07:00
一點淺見覺得可以修DS和algo當作評估自己想不想走CS有錯再請前輩們打臉修正QQ然後寫韌體真的相對用比較少DS和Algo我同學在IC廠寫韌體他真的不會tree graph這些東西他最多就會用array linkedlist和stack queue
作者: odanaga (PixiyON)   2019-10-26 11:14:00
覺得不懂os問題比較大
作者: fallinlove15   2019-10-26 11:18:00
一堆有現成解決記憶體管控的工具可以用 為什麼不學一下呢
作者: JasperChang (PeterChou)   2019-10-26 11:34:00
紅黑樹麻煩 資源有限不如用 hash table
作者: Litfal (Litfal)   2019-10-26 11:52:00
linkedlist我還算熟,但老實說真的不常用
作者: qwerasdf6102 (eat_centrum)   2019-10-26 12:10:00
額 hash雖然查找快 但所佔的空間更大吧
作者: YcL5566 (哈哈哈)   2019-10-26 12:24:00
能用mem換來的都是小事
作者: j0958322080 (Tidus)   2019-10-26 12:30:00
不是寫IC的記憶體都不重要
作者: IKnowWhy (知道為什麼)   2019-10-26 12:32:00
如果真的要循序處理array比較快好嗎...
作者: flysonics (飛音)   2019-10-26 12:33:00
寫FW的 記憶體常常就那麼丁點大 沒多少機會讓你用複雜的東西 除非就像前面推文講的一樣你要刻類似RTOS之類的
作者: j0958322080 (Tidus)   2019-10-26 12:37:00
不一定耶,多維陣列速度搞不好比指標慢
作者: matyih (mat)   2019-10-26 12:44:00
現在很多系統是engineer time比computer time貴簡單好維護的code比完全優化的更實際
作者: lunashining (asdfgh)   2019-10-26 12:47:00
推除非IC記憶體, 硬體廠一些老鳥覺得會C很厲害完全不知道在秋三洨...
作者: flysonics (飛音)   2019-10-26 12:51:00
現在很少這種老人了吧 都嘛大碼農時代惹
作者: Litfal (Litfal)   2019-10-26 13:15:00
寫dsp的表示qq,連alloc都沒得用
作者: cjo4zo2k7al (就只是隻)   2019-10-26 13:38:00
結論正確給推
作者: RedDracula (喔.)   2019-10-26 14:37:00
看用途 END
作者: bizer (bizer)   2019-10-26 14:59:00
說實在,沒有大量數據處理,哪有需要那些資料結構,整天call函數庫的就更不用說了
作者: soooooooo   2019-10-26 15:30:00
結論正確
作者: Kuba4ma (哦吼)   2019-10-26 15:58:00
結論正確xd
作者: hongsiangfu   2019-10-26 15:58:00
感謝各位大大無私分享
作者: rodion (r-kan/reminder)   2019-10-26 16:25:00
張飛比岳飛 array如何O(1) delete?一堆瞎扯結論正確的 就不要開玩笑被別人當真的 會害到人
作者: gbs0856 (Water_Legend)   2019-10-26 18:14:00
看推文,就知道台灣業界為何不重視軟工,出不了殺手級應用服務,只配做代工
作者: aasssdddd (路人庚)   2019-10-26 20:35:00
寫好了還比別人用其他方法解的慢…
作者: hanshsu (小肉呆)   2019-10-26 20:50:00
driver 裡面很多 listhead
作者: snoopy790428 (snoopy)   2019-10-27 00:01:00
面試就是頭過身就過
作者: vm3tl6vup (我不是NONO..)   2019-10-27 02:44:00
一樓,去搜尋reap allocator
作者: veru (ccc)   2019-10-27 13:11:00
會用array 就表示沒有要delete了 為什麼要care 如何O(1)Delete? 當function的local variable 就夠了舉個例 做counting sorting 你會用array 當bucket還是list?
作者: jason710068 (綜合水果汁z)   2019-11-03 13:26:00
假設是寫 c++的話,當然用stl啊,誰在那邊跟你造輪子

Links booklink

Contact Us: admin [ a t ] ucptt.com