方法一
源码:
//在一个有序数组中查找数字n
#include <stdio.h>
int main()
{
int arr[10]={1,2,3,4,5,6,7,8,9,10};
int k = 0;
scanf("%d", &k);
int i=0;
int sz = 0;
sz = sizeof(arr) / sizeof(arr[0]);
for (i = 1; i < sz; i++)
{
if(arr[i]==k)
{
printf("找到了该数字,下标为:%d\n", i);
break;
}
}
if(i==sz)
{
printf("未找到");
}
return 0;
}
方法二——二分查找
源码:
#include <stdio.h>
int main()
{
int k = 0;
scanf("%d", &k);
int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int sz = 0;
sz = sizeof(arr) / sizeof(arr[10]);
int left = 0;
int right = sz - 1;
while(left<=right)
{
int mid = (left + right) / 2;
if(arr[mid]>k)
{
right = mid - 1;
}
else if(arr[mid]<k)
{
left = mid + 1;
}
else
{
printf("找到了,下标为:%d", mid);
break;
}
}
if(left>right)
{
printf("未找到");
}
return 0;
}