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

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

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

10/26 08:53, 6年前 , 2F
理,平臺是32bit的mcu(非arm或dsp)
10/26 08:53, 2F

10/26 09:08, 6年前 , 3F
自己弄一塊memory pool來處理特定用途(大小)的allocatio
10/26 09:08, 3F

10/26 09:08, 6年前 , 4F
n/free
10/26 09:08, 4F

10/26 09:25, 6年前 , 5F
認真來說,他的說法並沒有錯.
10/26 09:25, 5F

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

10/26 09:45, 6年前 , 7F
異。只要人的感受不覺得慢就好。
10/26 09:45, 7F

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

10/26 09:50, 6年前 , 9F
wp sp解決一樓問題
10/26 09:50, 9F

10/26 09:53, 6年前 , 10F
看用途吧,殺雞還需要用牛刀嗎
10/26 09:53, 10F

10/26 09:55, 6年前 , 11F
推一個 只要performance沒有明顯差異 能簡單就簡單
10/26 09:55, 11F

10/26 10:03, 6年前 , 12F
去看slab的code
10/26 10:03, 12F

10/26 10:34, 6年前 , 13F
寫太難後面接手的也很難維護
10/26 10:34, 13F

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

10/26 10:35, 6年前 , 15F
ray在程式執行時比較難隨時增減 array好處則是儲存空間
10/26 10:35, 15F

10/26 10:35, 6年前 , 16F
比list小 但壞處時是沒辦法做二元搜尋樹
10/26 10:35, 16F

10/26 10:39, 6年前 , 17F
至於一樓的問題 我記得那通常是OS處理的問題 mcu似乎無
10/26 10:39, 17F

10/26 10:39, 6年前 , 18F
10/26 10:39, 18F

10/26 10:40, 6年前 , 19F
array的大小要在編譯前決定
10/26 10:40, 19F

10/26 10:42, 6年前 , 20F
一樓的問題 看看能不能自己改或做做一個RTOS
10/26 10:42, 20F

10/26 10:43, 6年前 , 21F
光是搜尋樹的問題 array應該就慘敗
10/26 10:43, 21F

10/26 10:44, 6年前 , 22F
C++裡面用到map的話 map本身也是紅黑樹
10/26 10:44, 22F

10/26 10:46, 6年前 , 23F
如果只是控制簡單mcu 的確用不到list 但如果你是寫大型
10/26 10:46, 23F

10/26 10:46, 6年前 , 24F
資料網站後端就要會
10/26 10:46, 24F

10/26 10:47, 6年前 , 25F
不過很多人只會寫C來操作mcu 寫個forwhileifelse 就覺得
10/26 10:47, 25F

10/26 10:47, 6年前 , 26F
自己會寫C++ 會資結演算法
10/26 10:47, 26F

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

10/26 10:51, 6年前 , 28F
尋法不會用紅黑樹map
10/26 10:51, 28F

10/26 10:53, 6年前 , 29F
但有看過DS ALGO 的人就知道怎麼做 差別大概是在這裡
10/26 10:53, 29F

10/26 10:56, 6年前 , 30F
有些情況array 有效率得多
10/26 10:56, 30F

10/26 10:57, 6年前 , 31F
推yamakazi大
10/26 10:57, 31F

10/26 10:59, 6年前 , 32F
學DS和演算法開始會用時間複雜度和空間複雜度來分析問題
10/26 10:59, 32F

10/26 11:00, 6年前 , 33F
^就是開始會用
10/26 11:00, 33F

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

10/26 11:01, 6年前 , 35F
當然也會提到array存取方便linkedlist空間使用等特性
10/26 11:01, 35F

10/26 11:02, 6年前 , 36F
但沒提到BigO的概念 BigO的概念是真的修資工DS Algo才會
10/26 11:02, 36F

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

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

10/26 11:04, 6年前 , 39F
獨立教algo的可能就會教比較概念的greedy divide&concur
10/26 11:04, 39F

10/26 11:04, 6年前 , 40F
dynamic programming但要怎樣寫成扣很多時候要某些DS幫
10/26 11:04, 40F

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

10/26 11:06, 6年前 , 42F
就入境隨俗倒著用幫他做大一點開山立派 XD
10/26 11:06, 42F

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

10/26 11:08, 6年前 , 44F
有錯再請前輩們打臉修正QQ
10/26 11:08, 44F

10/26 11:09, 6年前 , 45F
然後寫韌體真的相對用比較少DS和Algo
10/26 11:09, 45F

10/26 11:09, 6年前 , 46F
我同學在IC廠寫韌體他真的不會tree graph這些東西
10/26 11:09, 46F

10/26 11:10, 6年前 , 47F
他最多就會用array linkedlist和stack queue
10/26 11:10, 47F

10/26 11:14, 6年前 , 48F
覺得不懂os問題比較大
10/26 11:14, 48F

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

10/26 11:18, 6年前 , 50F
一下呢
10/26 11:18, 50F

10/26 11:34, 6年前 , 51F
紅黑樹麻煩 資源有限不如用 hash table
10/26 11:34, 51F

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

10/26 12:10, 6年前 , 53F
額 hash雖然查找快 但所佔的空間更大吧
10/26 12:10, 53F

10/26 12:24, 6年前 , 54F
能用mem換來的都是小事
10/26 12:24, 54F

10/26 12:30, 6年前 , 55F
不是寫IC的記憶體都不重要
10/26 12:30, 55F

10/26 12:32, 6年前 , 56F
如果真的要循序處理array比較快好嗎...
10/26 12:32, 56F

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

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

10/26 12:37, 6年前 , 59F
不一定耶,多維陣列速度搞不好比指標慢
10/26 12:37, 59F

10/26 12:44, 6年前 , 60F
現在很多系統是engineer time比computer time貴
10/26 12:44, 60F

10/26 12:45, 6年前 , 61F
簡單好維護的code比完全優化的更實際
10/26 12:45, 61F

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

10/26 12:48, 6年前 , 63F
不知道在秋三洨...
10/26 12:48, 63F

10/26 12:51, 6年前 , 64F
現在很少這種老人了吧 都嘛大碼農時代惹
10/26 12:51, 64F

10/26 13:15, 6年前 , 65F
寫dsp的表示qq,連alloc都沒得用
10/26 13:15, 65F

10/26 13:38, 6年前 , 66F
結論正確給推
10/26 13:38, 66F

10/26 14:37, 6年前 , 67F
看用途 END
10/26 14:37, 67F

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

10/26 14:59, 6年前 , 69F
l函數庫的就更不用說了
10/26 14:59, 69F

10/26 15:30, 6年前 , 70F
結論正確
10/26 15:30, 70F

10/26 15:58, 6年前 , 71F
結論正確xd
10/26 15:58, 71F

10/26 15:58, 6年前 , 72F
感謝各位大大無私分享
10/26 15:58, 72F

10/26 16:25, 6年前 , 73F
張飛比岳飛 array如何O(1) delete?
10/26 16:25, 73F

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

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

10/26 18:14, 6年前 , 76F
用服務,只配做代工
10/26 18:14, 76F

10/26 20:35, 6年前 , 77F
寫好了還比別人用其他方法解的慢…
10/26 20:35, 77F

10/26 20:50, 6年前 , 78F
driver 裡面很多 listhead
10/26 20:50, 78F

10/27 00:01, 6年前 , 79F
面試就是頭過身就過
10/27 00:01, 79F

10/27 02:44, 6年前 , 80F
一樓,去搜尋reap allocator
10/27 02:44, 80F

10/27 13:11, 6年前 , 81F
會用array 就表示沒有要delete了 為什麼要care 如何O(1)
10/27 13:11, 81F

10/27 13:13, 6年前 , 82F
Delete? 當function的local variable 就夠了
10/27 13:13, 82F

10/27 13:14, 6年前 , 83F
舉個例 做counting sorting 你會用array 當bucket還是list?
10/27 13:14, 83F

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

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

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

11/06 23:59, 6年前 , 87F
and IC 或是 DSP IC 設計的話 有需要修資工必修:資料
11/06 23:59, 87F

11/06 23:59, 6年前 , 88F
結構和演算法嗎?感謝回覆 ~
11/06 23:59, 88F
文章代碼(AID): #1TivCSMc (Tech_Job)
討論串 (同標題文章)
文章代碼(AID): #1TivCSMc (Tech_Job)