C语言二分法查找key值解析?
功能:下面函数二分法查找key值。数组中元素已递增排序,
若能找到key则返回对应的下标,反则返回-1.
-----------------------------------------------------------------------*/
#include
int fun(int a[],int n,int key)
{
int low,mid,high;
low=0;
high=n-1;
while(low<=high)
{
mid=(low+high)/2;
if(key<a[mid])
(high=mid-1);
else if(key>a[mid])
(low=mid+1);
else
return mid;
}
return -1;
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int a,b,c;
b=4;
c=fun(a,10,b);
if(c==1)
printf("not found");
else
printf("psition %d\n",c);
}
麻烦帮我解析一下 这二分法, 我看不懂 展开
#include<stdio.h>
void main()
{ int a[10]={9,16,25,32,2,1,29,81,36,21};
int key,low=0,high=10-1,mid,k=-1;
int i,j,t;
printf(" please input:");
scanf("%d",&key);
for(i=0;i<10;i++)
{for(j=0;j<10-i;j++)
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译。
为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准。
起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。