折半查找(c語言)


#include <stdio.h>

/**
 *
 * @param arr 數組必須是有序的
 * @param len 數組的長度
 * @param tagger 要查找的數據
 * @return 要查找的數據的下標,沒有就返加-1
 */
int binarySearch(int arr[], int len, int tagger)
{
    int L = 0, R = len - 1;
    int mid;
    while (L <= R)
    {
        mid = (L + R) / 2;
        if (arr[mid] == tagger)
            return mid;
        if (arr[mid] < tagger)
            L = mid + 1;
        else
            R = mid - 1;
    }
    return -1;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int i = binarySearch(arr, 10, 4);
    printf("index = %d\n", i);
    printf("value = %d\n", arr[i]);
    return 0;
}

 


免責聲明!

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



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