Recerca binari
Apparentia
In informatica, le recerca binari es un algorithmo de recerca que individua le indice de un determinate valor presente in un ensemble ordinate de datos. Le recerca binari demanda un accesso casual al datos in le quales cercar.
Implementationes
E isto es un implementation recursive in Java:
public class BinarySearch {
public int binarySearch (int a[], int p, int r, int k) {
int q, s = -1;
if (p <= r) {
q = (p+r)/2;
if (k < a[q])
s = binarySearch(a, p, q-1, k);
if (k > a[q])
s = binarySearch(a, q+1, r, k);
if (k == a[q])
return q;
}
else
return -1;
}
}
ubi le methodo binarySearch del classe BinarySearch recipe in ingresso obviemente un array, duo indices cardine e le elemento de recercar.
Seque un implementation del algorithmo multo simile al precedentes ma in un differente linguage, C#.
Isto es un implementation sin recurrentia.
/* Function pro Recerca Binari sin recurrentia */
int Binary_Search(int []array, int elemento)
{
int start = 0, end = array.length - 1, centro = 0;
while (start <= end)
{
centro = (start + end) / 2;
if (elemento < array[centro])
end = centro - 1;
else
if (elemento > array[centro])
start=centro+1;
else
return centro; //Caso: elemento==array[centro]
}
return -1;
}
Con recurrentia linguage C#:
/* Function pro Recerca Binari con recurrentia */
int BinSe_ri(int[] arr, int n, int start, int end)
{
if (start > end)
return -1;
int middle = (start + end) / 2;
if (n < arr[middle])
return BinSe_ri(arr, n, start, middle - 1);
if (n > arr[middle])
return BinSe_ri(arr, n, middle + 1, end);
else
return middle;
}