查找算法(一)二分查找
二分查找方法适用于不经常变动,但是又查找频繁的有序列表。
时间复杂度: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; }