在書的上下文是給我的功能----Qustion在3.3章書K&R
/* binsearch find x in v[0] <= v[1] <= ... <= v[n-1] */
int bin(int x, int v[] , int n)
{
int low, high , mid;
low = 0;
high = n -1;
while(low <= high) {
printf("LOL\n");
mid = (low+high)/2;
if(x < v[mid])
high = mid + 1;
else if (x> v[mid])
low = mid + 1;
else return mid;
}
return -1;
}
這是功能文本: 二進制搜索第一x到的中間元素的輸入值進行比較數組v。如果x比中間值小 ,搜索重點在表格的下半部分,否則在上半部分上。在任何一種情況下,下一步都是將x與所選一半的中間元素進行比較。 將範圍除以2的過程一直持續到找到值或範圍爲 爲空。
爲什麼當我把int v[4] nexts elements = { 2,3,4,5}
和for x = 2
這個循環永遠持續下去?
這是他們的錯誤?
感謝respo。 ,我看到了如果陳述中的錯誤,但是就像書中的錯誤 – lotoflaugh 2014-09-21 20:05:18
@lotoflaugh許多書包含錯別字。 – 2014-09-21 20:07:39