當前位置:成語大全網 - 書法字典 - c語言二分法查找關鍵值並分析它

c語言二分法查找關鍵值並分析它

# include & ltstdio.h & gt

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);

}