Como Ler os Exemplos¶
Código e pseudocódigo cumprem propósitos diferentes neste site.
Java executável¶
Um bloco identificado como Java deve compilar em uma classe adequada, com os
imports exibidos ou implícitos no exemplo. Métodos públicos validam pré-condições
quando isso esclarece o contrato. Auxiliares privados podem presumir que o chamador já as estabeleceu.
static int midpoint(int low, int high) {
if (low < 0 || high < low) {
throw new IllegalArgumentException("invalid range");
}
return low + (high - low) / 2;
}
Pseudocódigo¶
O pseudocódigo enfatiza o algoritmo, não a sintaxe. A atribuição usa ←,
intervalos semiabertos usam [from, to) e resultado ausente é NOT_FOUND.
Convenções de complexidade¶
né a quantidade de elementos, salvo definição diferente.- Grafos usam
Vvértices eEarestas. - Espaço significa pico de espaço auxiliar, sem incluir entrada e saída, salvo declaração diferente.
- Limites esperados, amortizados, médios e de pior caso não são intercambiáveis.
- Operações de tabela hash têm custo esperado
O(1)sob o modelo declarado, não tempo constante incondicional.
Diagramas e rastros¶
Diagramas ajudam a intuição, mas não são provas. Um argumento identifica um invariante, prova sua preservação e conecta o término ao resultado desejado.