自己编写的二分法排序
/*
* file: binary-search.c
* usage:realize binary search
* writer: shangliuyan
*
*
* descript:
* binary-search(A,v,b,e)
* if b>=e
* if v >a[(b+e)/2]
* binary-search(A,v,(b+e)/2,e)
* else if v< a[(b+e)/2]
* binary-search(A,v,b,(b+e)/2)
* else
* print (b+e)/2
* else
* else print "NIL"
*
* */
#include<stdio.h>
void BinarySearch(int a[],int v,int b,int e)
{
if (b<=e)
{
if (v>a[(b+e)/2])
return BinarySearch(a,v,(b+e)/2+1,e);
else if (v<a[(b+e)/2])
return BinarySearch(a,v,b,(b+e)/2-1);
else
printf("\n the number is in the arry,equal the %d element \n",(b+e)/2);
}
else
{
printf("\n the number is not in the arry \n");
}
}
int main()
{
int a[]={1,2,3,4,5,6};
int v=5;
int n=sizeof(a)/sizeof(a[0]);
printf("\n the arry is \n");
for(int i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n the search key is %d \n",v);
BinarySearch(a,v,0,n-1);
return 0;
}