Lista de algoritmos
Abaixo segue a lista de algoritmos :
Algoritmos de busca
Algoritmos gerais 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 sequência 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 : encontra elemento 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 .
Busca preditiva.
Algoritmos de ordenação
Bogosort : ineficiente, mais utilizado para ensinar o funcionamento dos algoritmos de ordenação.
Classificação bolha : para cada par de índices, mude os itens de posição se estiverem fora de ordem.
Bucket sort .
Classificação pente : Parecido com o método bolha.
Cocktail sort .
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 deste e adicionando-o no fim da lista.
Ordenação por inserção : determina à qual posição o item 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 duas, com todos os itens da primeira lista sendo menores que os itens da segunda; e então classifique as duas listas. Certamente esse é o método de escolha mais rápido.
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 .
Algoritmos de álgebra linear e geometria analítica
Algoritmos criptográficos
Algoritmos de sistemas distribuídos
Algoritmos numéricos
Algoritmos numéricos para uso geral
Algoritmos teórico-matemáticos
Algoritmo de Euclides : calcula o MDC .
Fatorização de inteiros : quebra um inteiro em seus fatores primitivos.
Divisão por tentativas.
Fatorização da curva elíptica de Lenstra.
Pollard's rho algorithm .
Pollard's p-1 algorithm .
Congruence of squares .
Quadratic sieve .
Special number field sieve .
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.
Algoritmos de processamento de sinais digitais
CORDIC : técnica de cálculo rápido de função trigonométrica .
Fast Fourier transform : determina as frequências contidas num (segmento de um) sinal.
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.
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-bytes C sempre para.
Knuth-Bendix completion algorithm : para reescrever regras de sistemas.
Parity : simples e rápida técnica de detecção de erros, com base num número par ou ímpar.
CHS conversion : conversão entre endereçamento de disco nos sistemas.
Algoritmo Xor Swap : troca os valores de duas variáveis sem o uso do buffer .