Re: [請益] 演算法以及微處理機?
看板Soft_Job (軟體人)作者jengjian (賺錢花錢賺錢花錢)時間13年前 (2012/12/20 18:48)推噓29(29推 0噓 34→)留言63則, 27人參與討論串7/12 (看更多)
閒著沒事來解釋一下演算法工程師這個工作內容
先定義什麼叫演算法,演算法就是一個處理問題的方法。
可以在有限的步驟跟時間內解決問題而且得到答案就叫做演算法。
至於什麼叫有限的步驟跟時間,我用下面一個例子做解釋
問題: 算出1到n的正整數合
解法一:
for(i=1; i<=n; i++)
{
sum += i;
}
解法二:
sum = (1+n)*n/2;
以上兩個方法都叫演算法,但傻子都知道那一個效率比較好。但如果說平台上
沒有支援乘或除的指令集,那勢必第二個方法就沒辦法實作。那接下來就只能
用第一種方法嗎??
解法三:
for(i=0x80000000; i!=0; i=i>>1)
{
sum <<= 1;
if(i&n)
{
sum += (1+n);
}
}
sum >>= 1;
這個解法只要平台有移位跟邏輯運算就可以使用的演算法。雖然還是比第二個方法慢,
但至少time complexity從 O(n) 降到 O(log n),但解法三是不是最好的演算法,除
非我可以去證明它是世界上最快的演算法(在剛剛的條件之下),不然它只是一個方法。
好的演算法工程師,有辦法去了解一個問題,了解處理問題的工作平台限制,時間限制
找到一個最適合系統的最佳的解法。甚至有些演算法工程師還會直接把剛剛的演算法
直接設計成一個 hardware component 去處理它的問題,只要系統可以那就可以。
一個好的演算法工程師需要具備
1. 了解問題的能力
2. 了解這個問題已經存在的演算法 (這才是重點)
3. 根據平台的限制與資源選擇一個好的演算法或是開發一個新的演算法
4. 驗證與說明自己選擇的演算法跟其他演算法的優缺點
這樣一個演算法工程師要修什麼課,就要問天,才會知道了。
因為這是要取決於你處理的問題方向以及處理問題的平台。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.130.53.5
推
12/20 20:01, , 1F
12/20 20:01, 1F
推
12/20 20:34, , 2F
12/20 20:34, 2F
推
12/20 20:37, , 3F
12/20 20:37, 3F
推
12/20 21:37, , 4F
12/20 21:37, 4F
推
12/20 22:15, , 5F
12/20 22:15, 5F
→
12/20 22:16, , 6F
12/20 22:16, 6F
→
12/20 22:17, , 7F
12/20 22:17, 7F
→
12/20 22:51, , 8F
12/20 22:51, 8F
推
12/20 23:44, , 9F
12/20 23:44, 9F
推
12/20 23:51, , 10F
12/20 23:51, 10F
→
12/21 00:12, , 11F
12/21 00:12, 11F
推
12/21 00:37, , 12F
12/21 00:37, 12F
推
12/21 13:59, , 13F
12/21 13:59, 13F
推
12/21 14:22, , 14F
12/21 14:22, 14F
→
12/21 14:23, , 15F
12/21 14:23, 15F
推
12/21 14:24, , 16F
12/21 14:24, 16F
→
12/21 14:24, , 17F
12/21 14:24, 17F
推
12/21 14:25, , 18F
12/21 14:25, 18F
→
12/21 14:25, , 19F
12/21 14:25, 19F
→
12/21 14:26, , 20F
12/21 14:26, 20F
→
12/21 14:26, , 21F
12/21 14:26, 21F
推
12/21 14:34, , 22F
12/21 14:34, 22F
→
12/21 14:34, , 23F
12/21 14:34, 23F
→
12/21 14:36, , 24F
12/21 14:36, 24F
→
12/21 14:37, , 25F
12/21 14:37, 25F
→
12/21 15:23, , 26F
12/21 15:23, 26F
推
12/21 16:20, , 27F
12/21 16:20, 27F
→
12/21 16:21, , 28F
12/21 16:21, 28F
→
12/21 16:22, , 29F
12/21 16:22, 29F
推
12/21 18:58, , 30F
12/21 18:58, 30F
→
12/21 18:59, , 31F
12/21 18:59, 31F
推
12/21 19:55, , 32F
12/21 19:55, 32F
→
12/21 21:29, , 33F
12/21 21:29, 33F
→
12/21 21:30, , 34F
12/21 21:30, 34F
→
12/21 21:32, , 35F
12/21 21:32, 35F
→
12/21 21:32, , 36F
12/21 21:32, 36F
推
12/21 21:50, , 37F
12/21 21:50, 37F
→
12/21 21:51, , 38F
12/21 21:51, 38F
推
12/21 21:54, , 39F
12/21 21:54, 39F
推
12/21 22:49, , 40F
12/21 22:49, 40F
→
12/21 22:50, , 41F
12/21 22:50, 41F
推
12/21 23:12, , 42F
12/21 23:12, 42F
推
12/22 00:22, , 43F
12/22 00:22, 43F
推
12/22 01:32, , 44F
12/22 01:32, 44F
→
12/22 01:33, , 45F
12/22 01:33, 45F
→
12/22 10:46, , 46F
12/22 10:46, 46F
→
12/22 10:46, , 47F
12/22 10:46, 47F
推
12/22 11:36, , 48F
12/22 11:36, 48F
→
12/22 13:59, , 49F
12/22 13:59, 49F
推
12/22 16:30, , 50F
12/22 16:30, 50F
推
12/22 16:46, , 51F
12/22 16:46, 51F
→
12/22 16:47, , 52F
12/22 16:47, 52F
→
12/22 18:47, , 53F
12/22 18:47, 53F
推
12/22 19:02, , 54F
12/22 19:02, 54F
→
12/22 20:33, , 55F
12/22 20:33, 55F
→
12/22 20:36, , 56F
12/22 20:36, 56F
推
12/22 22:32, , 57F
12/22 22:32, 57F
→
12/23 14:45, , 58F
12/23 14:45, 58F
推
12/24 17:13, , 59F
12/24 17:13, 59F
→
12/24 17:13, , 60F
12/24 17:13, 60F
→
12/24 17:13, , 61F
12/24 17:13, 61F
推
12/29 18:46, , 62F
12/29 18:46, 62F
→
12/29 18:46, , 63F
12/29 18:46, 63F
討論串 (同標題文章)
Soft_Job 近期熱門文章
PTT職涯區 即時熱門文章