开始学习C语言,学习令人充实,进步让人愉悦,记录路途美景与期盼
在一个有序数组中查找具体的某个数字n。编写int binsearch(int x, int v[], int n);功能:在v[0]<=v[1]<=v[2]<=…<=v[n-1]的数组中查找x
假设有一个数组如下,查找数字7
遍历法:
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int i=0,k=7;
int sz=sizeof(arr)/sizeof(arr[0]);
for(i=0;i<sz;i++)
{
if(k==arr[i])
{
printf("找到了,下标为:%d\n",i);
break;
}
}
return 0;
}
二分法:
#include<stdio.h>
int main()
{
int arr[]={1,2,3,4,5,6,7,8,9,10};
int left=0,right=9;
int mid=0,k=7;
while(left<=right)
{
mid=(left+right);
if(arr[mid]>k)
right=mid-1;
else if(arr[mid]<k)
left=mid+1;
else
{
printf("找到了,下标为%d",mid);
break;
}
}
if(left>right)
printf("没有找到\n");
return 0;
}
我要在一个月内,在51CTO博客发布20篇技术博文
标签:arr,right,51CTO,第一篇,开动,mid,int,sizeof From: https://blog.51cto.com/u_16344708/8214282