演算法是在電腦工程裡面,我想有在寫程式的人,應該一定至少有聽過的名詞。
介紹一個常見的搜尋演算法-Linear Sequential Search,故名思意,就是循序的方式去找到相符的資料,很簡單的寫法,就是直接用迴圈去比對,找到時就回傳結果。
以下面的例子,在Console的視窗裡透過一長串不整的數字中,找尋到想搜尋的數字:
int val = -1; for (int i = 0; i < list.Length; i++) { if (list[i] == item) { val = i; break; } } return val;
同樣的運用在WPF裡,也是可以同樣的操作方式去設計:
int val = -1; for (int i = 0; i < list.Length; i++) { if (list[i] == item) { val = i; break; } } return value;
可以看到演算法的結果:
string _l = ""; for (int j = 0; j < num.Length; j++) { _l = "Find the " + (j + 1) + " time(s) "; for (int i = 0; i <= j; i++) { if (num[i] == search) { _l += num[i].ToString()+" "; _l += "Got it"; this.___TextBlock___.Inlines.Add(GetString(_l, "red")); return; } else { _l += num[i].ToString()+" "; } } _l += "\n"; this.___TextBlock___.Inlines.Add(GetString(_l)); } _l += "Can't find it \n";
此方法不一樣的方法在於,它會將後面的結果略過不處理,減少系統的效能,這對於大量資料的搜尋,有很大的幫助。當然,它可以搭配像字串處理的演算。演算是一門必修的課程,可以多學幾招以後就會派上用場。
-雲遊山水為知已、逍遙一生而忘齡- 電腦神手
沒有留言:
張貼留言