首页 > 代码库 > 二分查找算法

二分查找算法

 1 #include <stdio.h> 2  3 int binarySearch(int *array, int length, int num); 4 int main(int argc, const char * argv[]) { 5      6     int array[] = {1, 2, 3, 4, 5}; 7      8     int length = sizeof (array) / sizeof(int); 9     10     int a = binarySearch(array, length, 4);11     12     printf("%d\n",a);13     14     return 0;15 }16 17 int binarySearch(int *array, int length, int num)18 {19     int low = 0;20     int high = length - 1;21     while (low <= high)22     {23         int middle = (low + high) / 2;24         25         if (array[middle] == num)26         {27             return middle;28         }29         else if(array[middle] > num)30             high = middle - 1;31         else32             low = middle + 1;33     }34     return 0;35 }

二分查找算法就是不断将数组进行对半分割,每次拿中间元素和要查找的元素进行比较;总数是偶数时,中间元素就是靠前的一个。比较之后,根据结果确定要查找的元素在前半部分还是后半部分。然后继续循环比较。

二分查找算法