开始学习C语言,学习令人充实,进步让人愉悦,记录路途美景与期盼

这是我在51CTO的第一篇博客,历史车轮缓缓开动_while循环

在一个有序数组中查找具体的某个数字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篇技术博文