查找算法(一)二分查找

二分查找方法适用于不经常变动,但是又查找频繁的有序列表。

时间复杂度:O(nlogn)

// int list[10] = {2,5,1,4,14,3,6,12,32,146 };
// binsearch(list, 146, 10); //在长度是10的数组中查找146的位置。
int binsearch(int list[], int searchnum, int listSize) {
    int left = 0, right = listSize - 1, middle;
    while (left <= right) {
        middle = (left + right) / 2;
        if (list[middle] == searchnum) {
            return middle;
        }
        else if (list[middle] < searchnum) {
            left = middle + 1;
        }
        else if (list[middle] > searchnum) {
            right = middle - 1;
        }
    }
    return -1;
}
posted @ 2021-05-12 22:28  vicky2021  阅读(284)  评论(0编辑  收藏  举报