Perguntas com a marcação «algorithms»

Um algoritmo é uma sequência de etapas bem definidas que define uma solução abstrata para um problema. Use essa tag quando seu problema estiver relacionado ao design e análise de algoritmos.

122
Por que posso olhar para um gráfico e encontrar imediatamente o ponto mais próximo de outro ponto, mas levo tempo O (n) através da programação?

Deixe-me esclarecer: Dado um gráfico de dispersão de um determinado número de pontos n, se eu quiser encontrar o ponto mais próximo de qualquer ponto do gráfico mentalmente, posso imediatamente ignorar a maioria dos pontos no gráfico, restringindo minhas escolhas a um número pequeno e constante de...

105
Como enganar a heurística “experimente alguns casos de teste”: algoritmos que parecem corretos, mas na verdade estão incorretos

Para tentar testar se um algoritmo para algum problema está correto, o ponto de partida usual é tentar executar o algoritmo manualmente em vários casos de teste simples - tente em alguns exemplos de instâncias de problemas, incluindo alguns casos de canto "simples" " Essa é uma ótima heurística: é...

83
Particionamento Quicksort: Hoare vs. Lomuto

Existem dois métodos de partição quicksort mencionados em Cormen: Hoare-Partition(A, p, r) x = A[p] i = p - 1 j = r + 1 while true repeat j = j - 1 until A[j] <= x repeat i = i + 1 until A[i] >= x if i < j swap( A[i], A[j] ) else return j e: Lomuto-Partition(A, p, r) x =...

62
Algoritmo in-loco para intercalar uma matriz

Você recebe uma matriz de 2n2n2n elementos a1,a2,…,an,b1,b2,…bna1,a2,…,an,b1,b2,…bna_1, a_2, \dots, a_n, b_1, b_2, \dots b_n A tarefa é intercalar a matriz, usando um algoritmo no local para que a matriz resultante pareça b1,a1,b2,a2,…,bn,anb1,a1,b2,a2,…,bn,anb_1, a_1, b_2, a_2, \dots , b_n,...

52
O que é recursão da cauda?

Eu conheço o conceito geral de recursão. Me deparei com o conceito de recursão da cauda enquanto estudava o algoritmo quicksort. Neste vídeo de algoritmo de ordenação rápida do MIT às 18:30 segundos, o professor diz que este é um algoritmo recursivo de cauda. Não está claro para mim o que realmente...