純C說話:折半查找源碼分享。本站提示廣大學習愛好者:(純C說話:折半查找源碼分享)文章只能為提供參考,不一定能成為您想要的結果。以下是純C說話:折半查找源碼分享正文
#include <stdio.h>
int bin_search(int key[],int low, int high,int k)
{
int mid;
if(low>high)
{
return -1;
}
else
{
mid = (low+high) / 2;
if(key[mid]==k)
return mid;
if(k>key[mid])
return bin_search(key,mid+1,high,k); /*在序列的後半部門查找*/
else
return bin_search(key,low,mid-1,k); /*在序列的前半部門查找*/
}
}
int main()
{
int n , i , addr;
int A[10] = {2,3,5,7,8,10,12,15,19,21};
printf("The contents of the Array A[10] are\n");
for(i=0;i<10;i++)
printf("%d ",A[i]); /*顯示數組A中的內容*/
printf("\nPlease input a interger for search\n");
scanf("%d",&n); /*輸出待查找的元素*/
addr = bin_search(A,0,9,n);
if(-1 != addr) /*查找勝利*/
{
printf("%d is at the %dth unit is array A\n ",n,addr);
}
else
{
printf("There is no %d in array A\n",n); /*查找掉敗*/
}
getchar();
return 0;
}