A classe Java a seguir contém dois métodos (busca e busca...
o metodo busca usa o metodo buscaBin, o qual tem 4 argumentos: vetor, elem, ini e fim. quando invocado, ele esta especificado com ini=0 & fin = 10 (vet.length-1 = 10, o que indica q o vetor tem tamanho 11. 11-1 = 10)
int m = (ini+fin)/2 -> (10+0)/2 = 5
vet[5] -> pos 5 no vetor: 96
if (vet[m] > elem) -> if (96 > 61)
como 96 é maior q 61, ele vai entrar no if (vet[m] > elem), incrementando o valor atual de m
return buscaBin(vet, elem, m+1, fin)
m = (6+10)/2 = 8
m = 8 como é funcao recursiva, ele entra de novo agora na iteração agora com m=8.
vet[8] = 55. 55 é a pos 8 do array.
if (vet[m] > elem)
else
m-1.
(6 + 7)/2 = 6. pos 6 do vetor é 80.
if (vet[m] > elem) -> 80 > 61
else
m+1 = 6+1 = 7
(7+7)/2 = 7
vet[7] = 60.
O 4° item do array é 60. logo, a funcao busca retorna 96,55,80,60
Navegue em mais questões