利用二分查找,在一个有序数组中找到某个元素。
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int find = 7;//设置要查找的数字
int sz = sizeof(arr) / sizeof(arr[0]);//元素个数
int star = 0;//第一个元素
int end = sz - 1;//最后一个元素
int mid = 0;//中间元素
while (star<=end)
{
mid = (star + end) / 2;
if (arr[mid] < find)
star = mid + 1;
else if (arr[mid] > find)
end = mid - 1;
else
{
printf("下标为:%d", mid);
break;
}
}
if (star > end)
printf("未找到元素");