8 11 25 33 56 67 88 99 102
Buscar o número 67 no vetor ordenado
V
0 1 2 3 4 5 6 7 8
i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8
pos_inicial
pos_final
8 11 25 33 56 67 88 99 102
V
0 1 2 3 4 5 6 7 8
i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8
pos_inicial
pos_final
BuscaBinaria(V, pos_inicial, pos_final, K)
meio = (pos_inicial + pos_final)/2
K == V[meio]
pos_inicial < pos_final
V[meio] < K
BuscaBinaria(V, 0, 8, 67)
meio = (0 + 8)/2 = 8/2 = 4
67 == V[4] ==> 67 == 56 ==> Falso
0 < 8 ==> V
V[4] < 67 ==> 56 < 67 ==> Verdadeiro
meio
8 11 25 33 56 67 88 99 102
V
0 1 2 3 4 5 6 7 8
i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8
pos_inicial
pos_final
BuscaBinaria(V, pos_inicial, pos_final, K)
meio = (pos_inicial + pos_final)/2
K == V[meio]
pos_inicial < pos_final
V[meio] < K
BuscaBinaria(V, meio+1, pos_final, K)
BuscaBinaria(V, pos_inicial, meio - 1, K)
BuscaBinaria(V, 5, 8, 67)
meio = (5 + 8)/2 = 13/2 = 6,5 = 6
67 == V[6] ==> 67 == 88 ==> Falso
5 < 8 ==> V
V[6] < 67 ==> 8 < 67 ==> Falso
BuscaBinaria(V, 5, (6-1), 67) ==> BuscaBinaria(V, 5, 5, 67)
meio
ITERAÇÃO 1
ITERAÇÃO 2
BuscaBinaria(V, meio+1, pos_final, K)
BuscaBinaria(V, pos_inicial, meio - 1, K)
BuscaBinaria(V, (4+1), 8, 67) ==> BuscaBinaria(V, 5, 8, 67)
V
0 1 2 3 4 5 6 7 8
i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8
BuscaBinaria(V, pos_inicial, pos_final, K)
meio = (pos_inicial + pos_final)/2
K == V[meio]
pos_inicial < pos_final
V[meio] < K
BuscaBinaria(V, meio+1, pos_final, K)
BuscaBinaria(V, pos_inicial, meio - 1, K)
BuscaBinaria(V, 5, 5, 67)
meio = (5 + 5)/2 = 10/2 = 5
67 == V[5] ==> 67 == 67 ==> Verdadeiro
ITERAÇÃO 3
8 11 25 33 56 67 88 99 102
meio
pos_inicial
pos_final

Exercicio Resolvido de Busca Binária com Codigo e Imagens

  • 1.
    8 11 2533 56 67 88 99 102 Buscar o número 67 no vetor ordenado V 0 1 2 3 4 5 6 7 8 i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8 pos_inicial pos_final 8 11 25 33 56 67 88 99 102 V 0 1 2 3 4 5 6 7 8 i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8 pos_inicial pos_final BuscaBinaria(V, pos_inicial, pos_final, K) meio = (pos_inicial + pos_final)/2 K == V[meio] pos_inicial < pos_final V[meio] < K BuscaBinaria(V, 0, 8, 67) meio = (0 + 8)/2 = 8/2 = 4 67 == V[4] ==> 67 == 56 ==> Falso 0 < 8 ==> V V[4] < 67 ==> 56 < 67 ==> Verdadeiro meio 8 11 25 33 56 67 88 99 102 V 0 1 2 3 4 5 6 7 8 i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8 pos_inicial pos_final BuscaBinaria(V, pos_inicial, pos_final, K) meio = (pos_inicial + pos_final)/2 K == V[meio] pos_inicial < pos_final V[meio] < K BuscaBinaria(V, meio+1, pos_final, K) BuscaBinaria(V, pos_inicial, meio - 1, K) BuscaBinaria(V, 5, 8, 67) meio = (5 + 8)/2 = 13/2 = 6,5 = 6 67 == V[6] ==> 67 == 88 ==> Falso 5 < 8 ==> V V[6] < 67 ==> 8 < 67 ==> Falso BuscaBinaria(V, 5, (6-1), 67) ==> BuscaBinaria(V, 5, 5, 67) meio ITERAÇÃO 1 ITERAÇÃO 2 BuscaBinaria(V, meio+1, pos_final, K) BuscaBinaria(V, pos_inicial, meio - 1, K) BuscaBinaria(V, (4+1), 8, 67) ==> BuscaBinaria(V, 5, 8, 67) V 0 1 2 3 4 5 6 7 8 i i+1 i+2 i+3 i+4 i+5 i+6 i+7 i+8 BuscaBinaria(V, pos_inicial, pos_final, K) meio = (pos_inicial + pos_final)/2 K == V[meio] pos_inicial < pos_final V[meio] < K BuscaBinaria(V, meio+1, pos_final, K) BuscaBinaria(V, pos_inicial, meio - 1, K) BuscaBinaria(V, 5, 5, 67) meio = (5 + 5)/2 = 10/2 = 5 67 == V[5] ==> 67 == 67 ==> Verdadeiro ITERAÇÃO 3 8 11 25 33 56 67 88 99 102 meio pos_inicial pos_final