Fala, David! É uma dúvida justa kkkkk
Uma coisa importante pra gente se atentar é em relação a alocação de recursos. E que "instantâneo" não é bem uma medida, por ser uma coisa que varia muito a depender do referencial.
Por exemplo, se falamos de uma comporta de uma usina hidroelétrica e dizemos que ela se abre completamente em 5 segundos, isso pode ser considerado instantâneo. No entanto, se falamos de uma plataforma de Daytrade q leva 5 segundos pra submeter uma ordem isso pode ser uma eternidade kkkkkkk
E sobre alocação de recursos, esses algoritmos costumam ter por objetivo otimizar performance. Oq pode ser com velocidade, ou com economia de bits, por exemplo. Podem ser menos dados sendo armazenados na memória ram, ou menos dados sendo trafegados na rede, ou sla. No fim das contas, se vc extrapolar pr'um cenário com muitos dados e muitos usuários, a economia pode ser bastante expressiva, até.
Eu n tenho a resposta precisa que cê tá buscando, mas eu acho que com essa dúvida sua cê tá num caminho muito bom.
Fica aí o desafio pra vc cronometrar o tempo de execução da pesquisa normal do Python e da pesquisa utilizando o binary search (plmds, não é pra cronometrar com o celular, não, hein. É via código kkkkkk)
Dica simples pra vc cronometrar (não necessariamente a mais correta)
Importe o módulo nativo com time
já importando o método a ser usado (q tbm se chama time), ficando
from time import time
Aí vc cria uma instância de inicio pra salvar o timestamp, e uma instância dps do fim do código. Aí vc calcula a duração do trecho fazendo a diferença do tempo final com o tempo inicial. E depois é só vc salvar isso numa variável e ajustar a formatação (a formatação eu n lembro de cabeça. Cê vai precisar dar uma pesquisada).
O resultado deve se parecer com isso
from time import time
def funcao_sua():
inicio1 = time()
[...seu código todo...]
fim1 = time()
duracao1 = fim1 - inicio1
print(duracao1)
def binary_search():
inicio2 = time()
[...código todo...]
fim2 = time()
duracao2 = fim2 - inicio2
print(duracao2)
funcao_sua()
binary_search()
Lembrando de ver como fazer a conversão do timestamp puro pra segundos. De cabeça eu não lembro, então vou ficar devendo kkkkkkk