二分查找——C語言


進行二分查找的前提是數組已排序,這里假定數組遞增排序。

每次查找都將待查找數num與處於數組中間位置a[mid]的數進行比較,num < a[mid]則在mid之前的元素中進行查找,反之在mid之后的元素中進行查找。

在函數中使用low, mid, high來對待查找的范圍來進行標記。

/*整數查找*/

void binsearch( int num, int a[], int length )        /*num為待查找數字,length為數組a的長度*/

{

    int low, mid, high;

    low = 0;

    high = length - 1;

    while( low <= high )

    {

        mid = ( low + high ) / 2;

        if( a[mid] > num )

            high = mid - 1;

        else if( a[mid] < num )

            low = mid + 1;

        else

            return mid;

    }

    return -1        /*未查找到num返回-1*/

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM