题目要求
写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)
代码如下
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
int main()
{
int ly[] = {0,1,2,3,4,5,6,7,8,9};
int left = 0;
int right = sizeof(ly)/sizeof(ly[0])-1;
int key = 5;
int mid = 0;
while (left <= right)
{
mid = (left+right)/2;
if (ly[mid] > key)
{
right = mid-1;
}
else if (ly[mid] < key)
{
left = mid+1;
}
else
{
break;
}
}
if (left <= right)
{
printf ("找到了,下标是%d\n",mid);
}
else
{
printf ("找不到-1\n");
}
system ("pause");
return 0;
}