#include <stdio.h>
#include <stdlib.h>
//compare to sequential search, binary search data must have been sorted!
int bin_search(int number,int *number_data,int index)
{
int low =0;
int upper = index;
int middle;
while(low <= upper)
{
middle =(low+upper)/2 ;
printf("low = %d\t",low);
printf("middel = %d \n",middle);
if(number == number_data[middle])
return middle ;
else
{
if(number > number_data[middle])
low = middle + 1;
else
upper = middle - 1;
}
}
return -1;
}
int main()
{
int number;
int rval = 0;
int number_data[]={11,22,33,44,55,66};
printf("please input a number :\t");
scanf("%d",&number);
rval = bin_search(number,number_data,6);
if(rval == -1)
printf("Not Find Number\n ");
else
printf("Find Number %d at position %d \n", number,(rval+1));
system("pause");
}
沒有留言:
張貼留言