Я изучаю C в данный момент, и мне дали этот код в книге для выполнения двоичного поиска. Я все еще очень смущен вызовом функции C с аргументами, и книга пока не дала мне большого контекста. Я считаю, что третий аргумент - это память (я не совсем уверен). Я пробовал google / bing, но во многих примерах есть функция main вместе с другой функцией, которая вызывается main. Что мне не хватает? Я попытался вызвать binsearch, как в Python, но получил множество ошибок.
#include <stdio.h>
/* binsearch: find x in v[0] <= v[1] <= ... <= v[n-1] */
int binsearch(int x, int v[], int n)
{
int low, high, mid;
low = 0;
high = n -1;
while (low <= high) {
mid = (low + high)/ 2;
if (x < v[mid]){
high = mid -1;
}
else if (x > v[mid]) {
low = mid + 1;
}
else{
// found match
return mid;
}
// no match
return -1;
}
}
binsearch(4,[1,2,3,4,5,6,7,8],8)
Спасибо.