二分查找法c語言 C語言折半查找法詳細(xì)代碼(假如有10個已排好序的數(shù))?
C語言折半查找法詳細(xì)代碼(假如有10個已排好序的數(shù))?#include<stdio.h>int seek(int*pArr,int low,int high,int num)void main
C語言折半查找法詳細(xì)代碼(假如有10個已排好序的數(shù))?
#include<stdio.h>
int seek(int*pArr,int low,int high,int num)
void main()
{
int Arr[]={1,2,3,4,5,6,7,8,9,10}
int find,num
printf(“輸入要查找的數(shù)值。n”)
scanf(“%d”,&num)
find=seek(Arr,0,9,num)
if(find==-1)printf(“num=%d未找到!n“,num)
否則printf(”num已找到!narr[%D]=%Dn,find,arr[find])]}
int seek(int*Parr,int low,int high,int Num)
]{//Parr是數(shù)組的名稱。數(shù)組必須按順序排列(這是二分法的要求),這里按從小到大的順序排序
int mid
mid=(低-高)/2
if((低>=高)&(Parr[mid]!=Num))
return-1
]{
]if(Parr[mid]==Num)
return mid
]else if(Parr[mid]>num)
high=mid 1//中間數(shù)大于要檢查的數(shù),表示它可能在中間段之前
else
Low=mid-1//同上,它可能在中間段之后
return seek(Parr,low,high,Num)//遞歸
}]}