二分法
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Binary_Search(int *arr, int x, int lengh)
{
int left = 0, right = lengh - 1; //left=0,right=11-1
int mid = 0;
while (left <= right)
{
mid = left + (right - left) / 2; //mid=0+(10-0)/2=5
if (x < arr[mid])
{
right = mid - 1;
}
else if (x > arr[mid])
{
left = mid + 1;
}
else
{
return mid;
}
}
return -1;
}
int main()
{
int x = 71; //要找的数
int arr[] = { 0, 1, 2, 3, 4, 5, 61, 71, 81, 91, 101 };
int lengh = 0;
lengh = sizeof(arr) / sizeof(arr[0]);
printf("%d \n", Binary_Search(arr, x, lengh)); //输出下标
return 0;
}