RosettaCodeData/Task/Binary-search/PARI-GP/binary-search-2.parigp
2023-07-01 13:44:08 -04:00

24 lines
517 B
Text

binarysearch(v, x) = {
local(
minm = 1,
maxm = length(v),
guess = floor(maxm/2+minm/2)
);
while(v[guess] != x,
if(v[guess] < x, minm = guess + 1, maxm = guess - 1);
if(minm > maxm,
guess = 0;
break
);
guess = floor(maxm/2+minm/2)
);
return(guess);
}
idx = binarysearch([1,4,9,16,25,36,49,64,81,100,121,144], 121);
if(idx, \
print("Item exists on index ", idx), \
print("Item does not exist anywhere.") \
)