搜索算法之二分法

二分法是搜索算法中的最簡單算法,其另一種稱呼爲折半查找法,實際上核心思想就是對一個有序數組,進行從中間分隔,然後去中間值來進行查找,如果對應所要找的數值比中間的值大,則說明搜索的數值在數組的右側,如果小則說明在左側,二分查找最重要的前提是所要搜索的數組數據一定要是有序的,如果是無序的話,則這個方法是行不通的,關於二分查找法的實現可以分爲遞歸與非遞歸的版本,這裏今天把非遞歸的版本源碼提供給大家,很簡單的思想,後續的文章還將提供BFS與DFS的查找算法。

int BinaryFind(int Buffer[], int Left_, int Right_, int FindKey)
{
    while(Left_ < Right_)
    {
        int mid = (Right_ + Left_)/2;
        if (Buffer[mid] == FindKey)
        {
            return mid;
        }
        else
        {
            if(Buffer[mid] > FindKey)
            {
                Right_ = mid-1;
            }
            else
            {
                Left_ = mid+1;
            }
        }
    }
}
發佈了38 篇原創文章 · 獲贊 17 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章