Computer Science › Algoritmos e Software

Laboratório de Algoritmos

0 de 10
  1. KD-Trees para Busca por Intervalo 2D

    Alternar a coordenada comparada por nível de profundidade transforma uma BST comum em uma partição recursiva do plano em retângulos aninhados, tornando poda por retângulo, não por ponto, a razão inteira de desempenho para usar uma kd-tree.

    Ler →6 seções16 min
  2. PageRank via Iteração de Potência

    A escalada honesta do que uma checagem de verificação apenas sugeria: em 18 páginas, iteração de potência para de ser conveniência e se torna o único método prático, exatamente como o algoritmo real de Brin & Page opera em escala de web.

    Ler →6 seções12 min
  3. Ancestral Comum Mais Curto em um DAG

    Duas execuções de BFS independentes, uma de cada vértice de consulta, combinadas minimizando a soma das duas distâncias, o problema WordNet de Princeton onde "existe um ancestral comum" e "é o ancestral comum mais curto" são perguntas genuinamente diferentes.

    Ler →6 seções9 min
  4. Caminho Mais Curto de Dijkstra Implementado

    A teoria já provada de Dijkstra construída de verdade, um heap binário real via heapq com deleção preguiçosa no lugar de decrease-key, rastreada linha a linha contra números calculados independentemente à mão.

    Ler →6 seções9 min
  5. Busca de Caminho com A*

    A* é Dijkstra com um único termo adicionado à ordenação da fila de prioridade, f(n) = g(n) + h(n), e admissibilidade, h(n) nunca superestimando o custo restante verdadeiro, é precisamente a condição que mantém isso provadamente ótimo.

    Ler →6 seções12 min
  6. Busca de Palavras Estilo Boggle: Trie na Prática

    A busca em profundidade gera um prefixo candidato de cada vez conforme percorre a grade, tornando "devo continuar estendendo este caminho?" exatamente uma pergunta de associação de prefixo que uma trie responde de forma barata e um hash set estruturalmente não consegue.

    Ler →6 seções15 min
  7. Percolação: Union-Find na Prática

    A tarefa clássica de Princeton para colocar o ADT union-find em uso real, reduzindo "o sistema percola?" a uma única consulta connected via sites virtuais, e diagnosticando o bug clássico de backwash que um design ingênuo produz.

    Ler →6 seções12 min
  8. Tabela Hash do Zero

    Construa uma tabela hash real a partir de uma lista Python simples, force colisões de propósito, sobreviva a um redimensionamento sem perder dados, e meça, em vez de simplesmente confiar, se o lookup médio de fato fica O(1) conforme n cresce.

    Ler →6 seções13 min
  9. Análise de Desempenho Empírica

    O encerramento da disciplina: toda promessa Big-O foi provada matematicamente mas nunca checada rodando um cronômetro, até agora, cronometrando estruturas já construídas através de ordens de magnitude e comparando a tendência medida, não um único número, contra a afirmação teórica real feita.

    Ler →6 seções13 min

Laboratório de Algoritmos

Part of the Computer Science curriculum.

Sort
1

B-Trees Implementadas

A B-tree rejeita a premissa binária inteiramente: muitas chaves e muitos filhos por nó, dimensionado para corresponder a um bloco de disco, transformando "encontre uma chave" em um pequeno número limitado de leituras de disco em vez de comparações.

2

KD-Trees para Busca por Intervalo 2D

Alternar a coordenada comparada por nível de profundidade transforma uma BST comum em uma partição recursiva do plano em retângulos aninhados, tornando poda por retângulo, não por ponto, a razão inteira de desempenho para usar uma kd-tree.

3

PageRank via Iteração de Potência

A escalada honesta do que uma checagem de verificação apenas sugeria: em 18 páginas, iteração de potência para de ser conveniência e se torna o único método prático, exatamente como o algoritmo real de Brin & Page opera em escala de web.

4

Ancestral Comum Mais Curto em um DAG

Duas execuções de BFS independentes, uma de cada vértice de consulta, combinadas minimizando a soma das duas distâncias, o problema WordNet de Princeton onde "existe um ancestral comum" e "é o ancestral comum mais curto" são perguntas genuinamente diferentes.

5

Caminho Mais Curto de Dijkstra Implementado

A teoria já provada de Dijkstra construída de verdade, um heap binário real via heapq com deleção preguiçosa no lugar de decrease-key, rastreada linha a linha contra números calculados independentemente à mão.

6

Busca de Caminho com A*

A* é Dijkstra com um único termo adicionado à ordenação da fila de prioridade, f(n) = g(n) + h(n), e admissibilidade, h(n) nunca superestimando o custo restante verdadeiro, é precisamente a condição que mantém isso provadamente ótimo.

7

Busca de Palavras Estilo Boggle: Trie na Prática

A busca em profundidade gera um prefixo candidato de cada vez conforme percorre a grade, tornando "devo continuar estendendo este caminho?" exatamente uma pergunta de associação de prefixo que uma trie responde de forma barata e um hash set estruturalmente não consegue.

8

Percolação: Union-Find na Prática

A tarefa clássica de Princeton para colocar o ADT union-find em uso real, reduzindo "o sistema percola?" a uma única consulta connected via sites virtuais, e diagnosticando o bug clássico de backwash que um design ingênuo produz.

9

Tabela Hash do Zero

Construa uma tabela hash real a partir de uma lista Python simples, force colisões de propósito, sobreviva a um redimensionamento sem perder dados, e meça, em vez de simplesmente confiar, se o lookup médio de fato fica O(1) conforme n cresce.

10

Análise de Desempenho Empírica

O encerramento da disciplina: toda promessa Big-O foi provada matematicamente mas nunca checada rodando um cronômetro, até agora, cronometrando estruturas já construídas através de ordens de magnitude e comparando a tendência medida, não um único número, contra a afirmação teórica real feita.