#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int midfind(int arr[], const int x, int beg, int last)
{
int mid;
int count=0;
if (beg > last)
{
return -1;
}
while (beg <= last)
{
count++;
mid = (beg + last) / 2;
if (x == arr[mid])
{
printf("查找次数=%d", count);
return mid;
}
else if (x>arr[mid])
{
beg = mid + 1;
}
else if (x<arr[mid])
{
last = mid - 1;
}
}
printf("查找次数=%d\n", count);
return -1;
}
int main()
{
int arr[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int key = 8;
int tmp = 0;
int left = 0;
int right = sizeof(arr) / sizeof(arr[0]) - 1;
tmp = midfind(arr, key,left, right);
printf("%d\n", tmp);
system("pause");
}
折半查找法
最新推荐文章于 2024-12-11 09:43:33 发布