//练习

在一个有序数组中查找具体的某个数字n,
编写int binsearch (intx, intv[],int n);功能:

在v[0]<=v[1]<=v[2]<=...<=[n-1]的数组中查找x
  • 法一

//必须有序数列一个一个按顺序查找

C语言程序设计P8_C语言程序设计教程

  • 法二

//二分法,无需有序数列

//二分法代码
int main()
{
	int arr[]={1,2,3,4,5,6,7,8,9,10};
	int left = 0;
	int k = 7;
	int sz = sizeof(arr)/sizeof(arr[0]);
	int right = sz - 1;
	int mid = (left + right)/2;
	while(left<=right)
	{
		if (arr[mid]>k)
		{
			right = mid-1;
		}
		else if(arr[mid]>k)
		{
			left=mid+1;
		}
		else
		{
			printf("找到了,下标是:%d\n",mid);
			break;
		}
	}
	if(left>right)
	{
		printf("找不到\n");
	}
system("pause");
return 0;
}

C语言程序设计P8_二分法_02