int fun(int a【】,int n,int key)
{我
nt低、中、高;//low、mid和high分別是指向數組的三個索引的下標:low = 0;//low指向數組a【】的第壹個元素,該元素包含下表0。
高= n-1;//lhigh指向數組a【】的最後壹個元素,即下表中的元素是n-1,其中n是數組的長度。
while(low & lt;=高)//循環終止條件為低》;當妳興奮的時候。
{
mid=(低+高)/2;//所謂的二分搜索法來了。每次都讓mid指向下標等於low和high之和的壹半的元素I。
f(key & lt;a【mid】)//如果amid大於要搜索的元素,則意味著要搜索的元素介於low和mid之間,這需要將high重置為mid-1。
(高位=中位1);//這裏應該是{}。妳不會做(),是嗎?
else if(key & gt;a【mid】)//同樣在這裏,如果amid小於要搜索的元素,則意味著要搜索的元素介於mid和high之間,這需要將low重置為mid+1。
(低=中+1);
其他
返回mid//其余相等,直接返回mid就是找到的結果。
}
返回-1;//這壹步顯示low & gt高,未找到元素,返回-1表示沒有結果。
}
主()
{
int a【10】= { 1,2,3,4,5,6,7,8,9,10 };
int a,b,c;
b = 4;
c = fun(a,10,b);
if(c = = 1)
printf(“未找到“);
其他
printf(“psition % d \ n“,c);
}