Imagem de fundo

Considere a seguinte lista ordenada de números inteiros em...

Considere a seguinte lista ordenada de números inteiros em Python.


Números = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]


Implementando um método de busca, qual a representação correta do código para realizar uma busca binária nessa lista?


A

def busca_binaria(lista):

n = len(lista)

for i in range(n - 1):

for j in range(0, n - i - 1):

if lista[j] > lista[j + 1]:

lista[j], lista[j + 1] = lista[j + 1], lista[j]


B

def busca_binaria(lista, alvo):

esquerda, direita = 0, len(lista) - 1

while esquerda <= direita:

meio = (esquerda + direita) // 2

if lista[meio] == alvo:

return meio

elif lista[meio] < alvo:

esquerda = meio + 1

else:

direita = meio - 1

return -1


C

def busca_binaria(lista, alvo):

inicio, fim = 1, len(lista)

while inicio <= fim:

meio = (inicio - fim) // 2

if lista[meio] == alvo:

return meio

elif lista[meio] < alvo:

inicio = meio + 1

else:

fim = meio - 1

return -1


D

def busca_binaria(lista, alvo):

esq, dir = 1, len(lista)+1

while esq < dir:

meio = (len(lista)-1) // 2

if lista[meio] == alvo:

return meio

elif lista[meio] < alvo:

esq = meio + 1

else:

dir = meio - 1

return -1