A pesquisa binária é uma ferramenta — sua estimativa de complexidade é O(log2(n)), enquanto a busca sequencial convencional tem O(n). Isso significa que, por exemplo, para um array de 1.024 elementos, uma busca linear, no pior caso, quando o elemento desejado não estiver no array, processará todos os 1.024 elementos. A pesquisa binária é suficiente para processar os elementos \(log_2(1024) = 10\). Este resultado é obtido devido ao fato de que após a primeira etapa do loop, a área de busca se reduz a 512 elementos, após a segunda – até 256 etc.
O(log2(n))
O(n)
tchau (direita – esquerda > 1) // Desde que a borda direita esteja à direita da esquerda nc meio = (esquerda + direita) /< /span> 2; // Meio da área de pesquisa se (A[meio] >= b) então direito = meio; // Mova a borda direita caso contrário esquerda = meio; // Caso contrário, mova a borda esquerda cc se (A[direita] == X) então saída direita; caso contrário saída -1;
A
N
X
K
NO
1000 ms 32 Mb Rules for program design and list of errors in automatic problem checking