domingo, 31 de janeiro de 2010

Lista de algoritmos

Lista de algoritmos


Origem: Wikipédia, a enciclopédia livre.

Ir para: navegação, pesquisa

Abaixo segue a lista de algoritmos, veja também a Lista de estruturas de dados e a Lista de termos relacionados aos Algoritmos e Estruturas de Dados.

Índice

[esconder]

• 1 Algorítmos Combinatórios

• 2 Algoritmos de Grafos

• 3 Algoritmos de Busca

• 4 Algoritmos de pesquisa em Strings

• 5 Algoritmos de Classificação

• 6 Algoritmos de Compressão

• 7 Geometria Computacional

• 8 Computação Gráfica

• 9 Algoritmos Criptográficos

• 10 Algoritmos de Sistemas Distribuídos

• 11 Algoritmos Numéricos

• 12 Processamento de sinais digitais

• 13 Algoritmos de números teóricos

• 14 Álgebra numérica

• 15 Otimização

• 16 Análise Gramatical

• 17 Algoritmos Quânticos

• 18 Algoritmos Evolutivos

• 19 Outros


[editar] Algorítmos Combinatórios

Algorítmos Combinatórios Gerais

• Algoritmo Busca-Cíclica de Floyd: encontra ciclos em iterações

• Geradores de Números Pseudo-aleatórios: produzem números estatísticamente aleatórios

o Blum Blum Shub: um gerador de números pseudo-aleatórios com prova de segurança

o Algoritmo de Yarrow

[editar] Algoritmos de Grafos

Veja artigo principal Teoria de Grafos

• Algoritmo de Bellman-Ford: calcula o caminho mais curto num grafo pesado (onde alguns dos pesos das extremidades podem ser negativos)

• Algoritmo de Dijkstra: calcula o caminho mais curto num grafo com peso absoluto das extremidades.

• Algoritmo de Floyd-Warshall: resolve o problema do caminho mínimo entre todos os partes de vértices em um grafo com direção e peso.

• Algoritmo de Kruskal: encontra a árvore de extensão mínima para um grafo.

• Algoritmo de Prim: encontra a árvore de extensão mínima para um grafo.

• Algoritmo de Boruvka: encontra a árvore de extensão mínima para um grafo.

• Algoritmo de Ford-Fulkerson: calcula o vazão máxima num grafo.

• Algoritmo de Edmonds-Karp: implementação de Ford-Fulkerson.

• Nonblocking Minimal Spanning Switch digamos, para um telephone exchange.

• Spring based algorithm: algoritmo para desenhar grafos.

• Algoritmo das economias: algoritmo para encontrar a menor rota em um grafo.

[editar] Algoritmos de Busca

• Busca linear: encontra um elemento numa lista não ordenada

• Busca binária: encontra um elemento numa lista ordenada

• Pesquisa binária numa sequência cíclica: encontra o menor elemento numa lista formada por elementos em sequencia de forma cíclica.

• Pesquisa binária em sequências de intervalo desconhecido: neste caso, não se sabe o tamanho da sequência. Encontra um intervalo onde está o elemento procurado, depois aplica busca binária.

• Busca em árvore binária

• Busca em largura: percorre uma árvore nível por nível

• Busca em profundidade: percorre um árvore galho por galho

• Busca pela melhor escolha: percorre uma árvore em uma ordem de provável importância, usando uma fila de prioridades.

• Busca A*: um caso especial da busca pela melhor escolha

• Busca Hash: encontra um elemento em uma lista indexada por uma tabela hash

• Predictive search: binary like search which factors in magnitude of search term versus the high and low values in the search. Sometimes called a dictionary search.

[editar] Algoritmos de pesquisa em Strings

• Algoritmo de Knuth-Morris-Pratt.

• Algoritmo de Rabin-Karp.

• Algoritmo de Boyer-Moore.

• Algoritmo de Boyer-Moore-Horspool.

• Algoritmo de Baeza-Yates-Gonnet. (Shift-And, Shift-Or ou Bitap)

[editar] Algoritmos de Classificação

• Bogosort: engraçado e lento.

• Classificação Bolha: para cada par de índices, mude os ítens de posição se fora de ordem.

• Bucket sort

• Classificação Pente: Parecido com o método Bolha.

• Cocktail sort: Bubble sort bidirecional

• Count sort: Ordena um arranjo posicionando o valor devido ao seu tamanho comparado aos outros.

• Counting sort

• Gnome sort

• Heapsort: converta a lista num heap, continue removendo o maior elemento do heap e adicionando-o no fim da lista.

• Ordenação por inserção: determina à qual posição o ítem atual pertence na lista dos classificados e o insere ali.

• Classificação Fusão: Classifique a primeira e a segunda metade da lista separadamente, e então junte as listas classificadas.

• Pancake sorting

• Pigeonhole sort

• Quicksort: divida a lista em dois, com todos os ítens da primeira lista sendo menores que os ítens da segunda e então classifique as duas listas. Certamente o método de escolha.

• Radix sort: classifica strings letra por letra.

• Ordenação por seleção: escolha o menor dos elementos restantes, adicione ao final/início da lista classificada.

• Shell sort: uma tentativa de otimização do insertion sort.

• Smoothsort: É um variação do Heap sort

• Stupid sort

• Topological sort

[editar] Algoritmos de Compressão

• Codificação aritmética: Codificação de Entropia (sempre alcança a entropia da fonte)

• Método de Burrows-Wheeler: preprocessamento útil para compressão sem perda de dados

• DEFLATE: compressão sem perda de dados

• Codificação Delta: apoio para compressão de dados na qual dados seqüênciais acorrem freqüentemente.

• Codificação de Huffman: Codificação de Entropia por Palavras-Código

• Incremental encoding: codificação delta aplicada à uma seqüencia de strings

• LZW: Codificaçao baseada em dicionário (Lempel, Ziv, Welch)

• LZ77: Codificaçao baseada em dicionário com "janela deslizante" (sliding window em inglês). A base do DEFLATE.

• LZ78: Codificaçao baseada em dicionário da qual evoluiu o LZW.

• Codificação Run-length: Codificaçao por Comprimento de Sequencia



Compressão de dados



Teoria

Com perda • Sem perda



Tipo de dados de origem

áudio • banda • imagens • vídeo



Métodos

Lista de algoritmos - Algoritmos de Compressão





[editar] Geometria Computacional

• Algoritmo Embrulho de Presente: determinando o envoltório convexo de um conjunto de pontos.

• Exame de Graham determina o envoltório convexo de um conjunto de pontos num plano.

• Teste Ponto no Polígono: testa se um dado ponto está ou não dentro de um polígono.

[editar] Computação Gráfica

• Algoritmo de linha de Bresenham: plota pontos de uma matriz bidimensional para traçar uma linha reta entre dois pontos especificos.

• Algoritmo do Pintor: detecta partes visíveis de um cenário tridimensional.

• Traçado de raios: interpretação de imagens reais.

[editar] Algoritmos Criptográficos

Veja também Tópicos de Criptografia para um 'glossário analítico'

• Criptografia de chave simétrica (chave secreta):

o Padrão de Criptografia Avançada (AES), vencedor da competição NIST

o Blowfish

o Padrão de Criptografia de Dados (DES), também chamado de DE, vencedor da competição NBS, substituído pelo AES para a maioria dos propósitos.

o IDEA

o RC4

• Criptografia assimétrica (de chave pública) ou Assinatura digital:

o DSA

o ElGamal

o RSA

o NTRUEncrypt

• Funções Criptográficas de Condensação de Mensagem:

o MD5

o MD4

o RIPEMD-160

o SHA-1

o HMAC: autenticação chaveada de mensagem codificada.

• Outros

o Diffie-Hellman: troca de chaves.

[editar] Algoritmos de Sistemas Distribuídos

• Lamport ordering: ordenação parcial de eventos baseado na relação dos acontecimentos passados

• Algoritmo Instantâneo: um instantâneo é o processo de captura do estado global de um sistema

• Ordenação de Vetor: uma ordenação total de eventos.

[editar] Algoritmos Numéricos

Veja também artigo principal Análise Numérica and Lista de tópicos de análise numérica

• Algoritmo de De Boor: calcula fendas.

• Algoritmo de De Casteljau: calcula as curvas de Bezier.

• Método da Falsa Posição: aproxima raízes de uma função.

• Eliminação de Gauss-Jordan: resolve sistemas de equações lineares.

• Algoritmo de Gauss-Legendre: calcula os dígitos de pi

• Método de Newton: encontra os zeros de uma função com cálculo

• Funções de Arredondamento: modos clássicos de arredondar números.

• Método da Secante: aproxima raízes de uma função.

• Shifting nth-root algorithm: extração da raiz dígito a dígito.

• Raiz Quadrada: aproxima a raiz quadrada de um número.

[editar] Processamento de sinais digitais

• CORDIC: técnica de cálculo rápido de função trigonométrica.

• Fast Fourier transform: determina as freqüencias contidas num (segmento de um) sinal.

o Algoritmo de Cooley-Tukey FFT

• Rainflow-counting algorithm: Reduz uma história de stress complexa em uma contagem de revezes de stress elementares para uso em análise de fadiga.

• Osem: algoritmo para processamento de imagens médicas.

[editar] Algoritmos de números teóricos

• Algoritmo de Euclides: calcula o MDC.

• Fatorização de Inteiros: quebra um inteiro em seus fatores primitivos.

o Divisão por tentativas

o Fatorização da curva elíptica de Lenstra

o Pollard's rho algorithm

o Pollard's p-1 algorithm

o Congruence of squares

o Quadratic sieve

o Special number field sieve

o General number field sieve

• Algoritmo de Multiplicação: rápida multiplicação de dois números.

• Teste de Primitividades: determina se um dado número é primitivo.

o Teste de primitividade de Miller-Rabin

o Sieve of Eratosthenes: produz uma lista dos primeiros primitivos

o AKS primality test

[editar] Álgebra numérica

• Algoritmo de Buchberger: encontra a base de Grobner.

• Algoritmo de Eigenvalue

• Exponentiating by squaring: calcula rápidamente a potência de matrizes e números.

• Processo de Gram-Schmidt: ortogonaliza um conjunto de vetores.

• Knuth-Bendix completion algorithm: para reescrita de sistemas de regras.

• Algoritmo de divisão multivariada: para polinomios em vários indeterminados

[editar] Otimização

• Simplex algorithm: um algoritmo para resolver o problema de programação linear.

• Simulated annealing

• (maiores detalhes em Otimização Combinatória)

==Reeditado até aqui== refazer o resto (a parte abaixo) de acordo com a página em inglês Nem tudo está verificado se em concordância.

[editar] Análise Gramatical

• Algoritmo CYK: decide se uma dada string pode ser gerada a partir de uma Gramática Livre de Contexto

• Algoritmo Earley: Também decide se uma dada string pode ser gerada a partir de uma Gramática Livre de Contexto

[editar] Algoritmos Quânticos

Veja artigo principal Computação Quântica

• Algoritmo de Grover: Providencia velocidade quadrática para muitos problemas de busca.

• Algoritmo de Shor: Providencia velocidade exponencial para fatorizar um número.

• Algoritmo de Deutsch-Jozsa: Critério de baleançeamento para funções booleanas.

[editar] Algoritmos Evolutivos

• Algoritmo Genético: Algoritmo evolutivo usado por regras de associação em mineração de dados.

[editar] Outros

• Subset-sum: Aceita a completa linguagem NP Subset-sum em polinominal.

• CORDIC: Técnica de computação função-rápida.

• Cyclic redundancy check: Cálculo de verificação de palavra.

• Halt: Ninguém sabe se este programa 43-byte C sempre pára.

• Knuth-Bendix completion algorithm: para reescrever regras de sistemas.

• Parity: Simples/rápida técnica de detecção de erros. É um número par ou ímpar?

• CHS conversion: Converte entre endereçmento de disco nos sistemas.

• Algoritmo Xor Swap: Troca os valores de duas variáveis sem o uso do buffer.

Obtido em "http://pt.wikipedia.org/wiki/Anexo:Lista_de_algoritmos"

Sem comentários:

Enviar um comentário

RADIO ORBITAL