求C语言编写程序折半查找程序

求C语言编写程序折半查找程序

#include<stdio.h>

#define n 20

int binary(int a[], int n, int found)

{

int low = 0;

int high = n - 1;

int mid;

do

{

mid = (low + high) / 2;

if(found == a[mid])

return mid;

else if(found < a[mid])

high = mid - 1;

else

low = mid + 1;

}while(low <= high);

return -1;

}

void main()

{

int found,a[n] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

printf("please input a number\n");

scanf("%d",&found);

if(binary(a,n, found))

printf("在数组中的位置是 %d\n",binary(a,n, found));

else

printf("没有找到\n");

}

粤ICP备17098710号 微点阅读