A3-二分查找算法

 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         else

32             low = middle + 1;

33     }

34     return 0;

35 }

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

你可能感兴趣的:(二分查找)