home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.disi.unige.it
/
2015-02-11.ftp.disi.unige.it.tar
/
ftp.disi.unige.it
/
pub
/
.person
/
CataniaB
/
teach-act
/
esempi
/
Tipi_ed_operatori
/
binSearch.c
next >
Wrap
C/C++ Source or Header
|
1999-03-11
|
524b
|
32 lines
/* bin search - vedi esercizio 3-1 pag. 71 del Kernighan-Ritchie */
#include <stdio.h>
#define SIZE 6
int binsearch(int,int*,int);
int main()
{
int a[SIZE] = {2,4,6,8,10,12}, i;
for (i=1;i <= 13; i++)
printf("%d: %d\n",i,binsearch(i,a,SIZE));
}
int binsearch(int x, int v[], int n)
{
int low = 0, high = n - 1, mid;
while (low <= high)
{
mid = (low + high) / 2;
if (x < v[mid])
high = mid - 1;
else
low = mid + 1;
}
if (x == v[high])
return high;
else
return -1;
}