第一次使用半分查找,勉强可以看
封装函数体
int look(int arr[],int num,int r)
{
int left = 0;
int right = 0;
right = r;
while (left <= right) //开始执行半分查找
{
int midle = left + (right - left) / 2;
if (arr[midle] == num)
{
return midle;
}
else if (arr[midle] > num)
{
right = midle - 1;
}
else if (arr[midle] < num)
{
left = midle + 1;
}
if (left>right)
{
return -1;
}
}
}
主函数,调用封装好的函数
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15 };
int r = sizeof (arr) / sizeof (arr[0]) - 1; //求数组的长度
int num = 0;
int i = 0;
printf("请输入要查找的数字:"); //写入要查找的数字
scanf("%d",&num);
i = look(arr,num,r);
if (i == -1) //输出结果
{
printf("没找到\n");
}
else
{
printf("%d\n", i);
}
return 0;
}