#include<stdio.h>
#include<stdlib.h>
#define NUM 10
int binary_search(int *a, int n, int key)
{
int low, high, mid;
low = 0;
high = n-1;
while (low <= high)
{
mid = (low + high) / 2;
if (key > a[mid])
{
low = mid + 1;
}
else if (key < a[mid])
{
high = mid - 1;
}
else
{
return mid;
}
}
}
int main()
{
int a[NUM] = { 1, 3, 5, 7, 9, 23, 45, 56, 78, 88 };
int index = binary_search(a, NUM, 45);
printf("%d\n", index);
system("pause");
return 0;
#include<stdlib.h>
#define NUM 10
int binary_search(int *a, int n, int key)
{
int low, high, mid;
low = 0;
high = n-1;
while (low <= high)
{
mid = (low + high) / 2;
if (key > a[mid])
{
low = mid + 1;
}
else if (key < a[mid])
{
high = mid - 1;
}
else
{
return mid;
}
}
}
int main()
{
int a[NUM] = { 1, 3, 5, 7, 9, 23, 45, 56, 78, 88 };
int index = binary_search(a, NUM, 45);
printf("%d\n", index);
system("pause");
return 0;
}
运行结果: