其實這問題好奇成份比較大,常看到厲害的公司(特別是軟體)喜歡考刷題,
但又常聽到實際工作幾乎很少用到,如果分類幾個領域,
像是
工具程式 前端/後端
遊戲 前端/後端
系統層
晶片設計? 等等...
那演算法資結這類刷題問題最常在那種產業/領域的程式會被用到呢?
我自己是猜想遊戲產業是不是用到最多?
作者:
plsmaop (plsmaop)
2020-11-14 18:17:00Infra,DB 裡大量複雜的資料結構,分散式之後更複雜,各種速度跟一致性的取捨,十年前開始的 newsql 用的十幾年前開始的 LSM 樹,原始的 LSM 樹更是8090 的論文才發表的,還有 skip list,現在為了跟上 CPU 速度,開始出現重視快取的資料結構,再來就是老生常談各式各樣 compiler, 現在 AI 流行於是有了 AI compiler
嵌入式 很常遇到手刻信號量的處理方式Btree結構會用在硬碟系統 不懂寫不了驅動我之前電面蝦皮考KMP搜尋關鍵字的方式怎樣最有效這樣夠實際了吧!但是動態規劃我還真的不知道紅黑樹會用在自己寫CFS完全公平的排程
dijkstra 可以用在routing table其實都是書上寫的
作者:
plsmaop (plsmaop)
2020-11-14 19:09:00前端的話,瀏覽器裡的 js 引擎就用了很多 compiler 的技術,更別提html css parser,基本上任何 parsing 問題要有效率都是演算法啦,chrome 裡面鑲了 leveldb 就是 LSM樹,常用的 Babel 轉譯也是很多編譯器的演算法內容,react 裡計算 virtual dom diff 也是演算法
CLRS的書有說過topological sort是某位教授在穿衣服的時候想出來的,還是只是舉例?
作者:
imreader (imreader)
2020-11-14 19:45:00影像處理、數位訊號處理、語音
快速傅立葉轉換算是演算法嗎?convolution也算嗎?
作者:
alihue (wanda wanda)
2020-11-14 22:14:00其實考刷題,滿多還是考 easy 等級,簡單初步篩選而已是一些明星公司很多求職者,才會去提升難度刷題那些演算法很多都是經典題,實務上應該早就很多更好的變形工作上要寫演算法,通常也是需要先去讀論文看最新的演算法,不是無腦套教科書的。教科書那些不是不重要,而是被當成基礎
作者:
alihue (wanda wanda)
2020-11-14 22:19:00例子很多啦,敢考難的通常都是大家擠破頭想進的考刷題雖然惡名昭彰,但是如果考 easy 你用暴力法寫不出來就別自稱資深工程師了
作者:
Apache (阿帕契)
2020-11-14 22:37:00state-of-the-art
作者:
final01 (牛頓運動定律)
2020-11-15 00:05:00傻眼~都會用到阿~不過你要先進的去這些公司就是
作者:
CoNsTaR ((const *))
2020-11-15 01:02:00用在面試
作者:
TakiDog (多奇狗)
2020-11-15 05:42:00dijkstra 遊戲內自動尋路
作者:
starburs (星爆氣流斬)
2020-11-15 07:31:00用在面試 中肯
作者:
iiiii (I take 5)
2020-11-15 12:13:00未來用在訊號處理,乾脆直接考複雜度為nlogn的dft就好了
刷題的演算法只有在篩選有刷題的面試者有用,其它用處不大
作者:
jobintan (Robin Artemstein)
2020-11-15 20:46:00React virtual DOM就是一棵樹…
作者:
paint (有斑紋的馬)
2020-11-15 21:12:00這個問題可能要問FAANGer
作者: daddy29 (願上帝與你同在) 2020-11-15 23:18:00
有一天你真的會碰到
作者: newhandfun (新手方) 2020-11-16 00:48:00
我以為遊戲尋路是用A*,純di太慢惹
作者:
jiajia1 (jiajia)
2020-11-16 10:14:00應用在篩選非法移民界的coding monkey之王
作者:
matyih (mat)
2020-11-16 11:55:00用在負責出面試題目的工程師
每次討論刷題歪樓還有特定人士會針對刷題留特固定的推文都讓我笑
作者:
DrTech (竹科管理處網軍研發人員)
2020-11-19 23:39:00工作真的常用到的。尤其是面試人時。偶爾寫新的演算法時,會用到,但是寫一次,就成為library重複使用了。