2017年8月14日 星期一

C# WPF - Linear Sequential Search Algorithm

演算法是在電腦工程裡面,我想有在寫程式的人,應該一定至少有聽過的名詞。

介紹一個常見的搜尋演算法-Linear Sequential Search,故名思意,就是循序的方式去找到相符的資料,很簡單的寫法,就是直接用迴圈去比對,找到時就回傳結果。

以下面的例子,在Console的視窗裡透過一長串不整的數字中,找尋到想搜尋的數字:

int val = -1for (int i = 0; i < list.Length; i++) 
{ 
    if (list[i] == item) 
    { 
        val = i; 
        break; 
    } 
} 
return val;


同樣的運用在WPF裡,也是可以同樣的操作方式去設計:

int val = -1for (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";

此方法不一樣的方法在於,它會將後面的結果略過不處理,減少系統的效能,這對於大量資料的搜尋,有很大的幫助。當然,它可以搭配像字串處理的演算。演算是一門必修的課程,可以多學幾招以後就會派上用場。


-雲遊山水為知已逍遙一生而忘齡- 電腦神手

沒有留言:

張貼留言