Em Ciência da Computação, quais conceitos você aprenderá serão inúteis até mostrá-lo. O problema é a principal preocupação que precisa ser resolvida, portanto o algoritmo é um breve planejamento de como o problema será resolvido em geral. Portanto, é uma grande preocupação no mundo da Ciência da Computação.
Acho que quase todos os aspectos da Ciência da Computação precisam de algoritmo Deixe-me mostrar isso A lista a seguir incluiria várias áreas da Ciência da Computação e quais algoritmos eles usam.
Automata
Construção Powerset. Algoritmo para converter autômato não determinístico em autômato determinístico.
Algoritmo de Todd-Coxeter. Procedimento para gerar cosets.
Inteligência artificial
Alpha Beta. Alpha max mais beta min. Amplamente utilizado em jogos de tabuleiro.
Algoritmos de formigas. A otimização de colônias de formigas é um conjunto de algoritmos inspirados no comportamento das formigas para resolver um problema, encontrar o melhor caminho entre dois locais.
DE (evolução diferencial). Resolva o problema de ajuste polinomial de Chebyshev.
Reconhecimento semi-supervisionado de sentenças sarcásticas nas análises de produtos on-line. Algortitmo que reconhece sacarsmos ou ironia em um tweet ou documento online. Um algoritmo desse tipo também será essencial para a programação de robôs humanóides.
Visão computacional
Epítome. Represente uma imagem ou vídeo por um menor.
Contando objetos em uma imagem . Usa o algoritmo de rotulagem de componentes conectados para rotular primeiro cada objeto e contar os objetos.
Algoritmo O'Carroll. A partir de uma conversão matemática da visão de insetos, esse algoritmo avalia como contornar evitando objetos.
Algorítmos genéticos
Eles usam três operadores. seleção (escolha a solução), reprodução (use as soluções escolhidas para construir outras), substituição (substitua a solução, se melhor).
Seleção proporcional de aptidão. Também conhecida como seleção de roleta, é uma função usada para selecionar soluções.
Seleção de truncamento. Outro método para selecionar soluções, ordenadas por condicionamento físico.
Seleção de torneios. Selecione a melhor solução por um tipo de torneio.
Amostragem estocástica universal. Os indivíduos são mapeados para segmentos contíguos de uma linha, de modo que o segmento de cada indivíduo seja igual em tamanho à sua adequação, exatamente como na seleção de roleta.
Redes neurais
Rede Hopfield. Rede neural artificial recorrente que serve como sistemas de memória endereçável por conteúdo com unidades de limite binário. Eles convergem para um estado estável.
Retropropagação. Técnica de aprendizado supervisionado usada para o treinamento de redes neurais artificiais.
Mapa auto-organizado (mapa de Kohonen). Redes neurais treinadas usando aprendizado não supervisionado para produzir representação em baixa dimensão (2D, 3D) das amostras de treinamento. Bom para visualizar dados de alta dimensão.
Bioinformática
Needleman-Wunsch. Executa um alinhamento global em duas sequências, para sequências de proteínas ou nucleotídeos.
Smith-Waterman. Variação do Needleman-Wunsch.
Compressão
Algoritmos de compactação sem perdas
Transformação Burrows-Wheeler. Pré-processamento útil para melhorar a compactação sem perdas.
Desinflar. Compactação de dados usada pelo ZIP.
Codificação Delta. Auxílio à compactação de dados nos quais dados sequenciais ocorrem com frequência.
Codificação incremental. Codificação delta aplicada a sequências de strings.
LZW. (Lempel-Ziv-Welch). Sucessor de LZ78. Cria uma tabela de conversão a partir dos dados para compactar. É usado pelo formato gráfico GIF.
LZ77 e 78. A base de outras variações LZ (LZW, LZSS, ...). Ambos são codificadores de dicionário.
LZMA. Abreviação de Algoritmo em cadeia de Lempel-Ziv-Markov.
LZO. Algoritmo de compactação de dados focado na velocidade.
PPM(Previsão por correspondência parcial). Técnica adaptativa de compactação de dados estatísticos baseada em modelagem e previsão de contexto. Codificação Shannon-Fano. Constrói códigos de prefixo com base em um conjunto de símbolos e suas probabilidades.
Binário truncado. Uma codificação de entropia normalmente usada para distribuições de probabilidade uniformes com um alfabeto finito. Melhore a codificação binária.
Codificação de execução. Compactação primária que substitui uma sequência do mesmo código pelo número de ocorrências.
Sequitur. Inferência gramatical incremental em uma string.
EZW (Wavelet incorporado de Zerotree). Codificação progressiva para compactar uma imagem em um fluxo de bits com maior precisão. Pode haver compressão com perda também com melhores resultados.
Codificação de entropia
Esquema de codificação que atribui códigos aos símbolos, de modo a corresponder os comprimentos dos códigos às probabilidades dos símbolos.
Codificação de Huffman. Compressão simples sem perdas, aproveitando as frequências relativas de caracteres.
Codificação adaptativa de Huffman. Técnica de codificação adaptativa baseada na codificação de Huffman.
Codificação aritmética. Codificação avançada de entropia.
Codificação de intervalo. O mesmo que a codificação aritmética, mas olhou de uma maneira ligeiramente diferente.
Codificação unária. Código que representa um número n com n, seguido de um zero. Elias delta, gama, codificação ômega. Código universal que codifica os números inteiros positivos. Codificação de Fibonacci. Código universal que codifica números inteiros positivos em palavras de código binário.
Codificação Golomb. Forma de codificação de entropia ideal para alfabetos após distribuições geométricas.
Codificação de arroz. Forma de codificação de entropia ideal para alfabetos após distribuições geométricas.
Algoritmos de compressão com perdas
Codificação preditiva linear. Compressão com perdas, representando o envelope espectral de um sinal digital de fala em forma compactada.
Algoritmo A-law. Algoritmo de companding padrão.
Algoritmo Mu-law. Compressão de sinal analógico padrão ou algoritmo de companding.
Compressão fractal. Método usado para comprimir imagens usando fractais.
Transforme a codificação. Tipo de compactação de dados para dados como sinais de áudio ou imagens fotográficas.
Quantização vetorial. Técnica frequentemente usada na compactação de dados com perda.
Compressão Wavelet. Forma de compactação de dados adequada para compactação de imagem e áudio.
Criptografia
Chave secreta (criptografia simétrica)
Use uma chave secreta (ou um par de chaves diretamente relacionadas) para descriptografia e criptografia.
Advanced Encryption Standard (AES) , também conhecido como Rijndael.
Blowfish. Projetado por Schneier como um algoritmo de uso geral, destinado a substituir o DE antigo.
Data Encryption Standard (DES) , anteriormente DE Algorithm.
IDEA (Algoritmo Internacional de Criptografia de Dados) . Anteriormente IPES (Improved PES), outro substituto para o DES. É usado pelo PGP (Pretty Good Privacy). Executa transformações em dados divididos em blocos, usando uma chave.
RC4 ou ARC4. Cifra de fluxo amplamente usada em protocolos como SSL para tráfego na Internet e WEP para redes sem fio.
Algoritmo de criptografia minúsculo. Fácil de implementar o algoritmo de cifra de bloco usando algumas fórmulas.
PES (Proposta de Padrão de Criptografia). Nome mais antigo para IDEA.
Chave pública (criptografia assimétrica)
Use um par de chaves, designadas como chave pública e chave privada. A chave pública criptografa a mensagem, apenas a chave privada permite descriptografá-la.
DSA (algoritmo de assinatura digital). Gere chaves com números primos e aleatórios. Foi usado por agências dos EUA, e agora de domínio público.
ElGamal. Baseado no Diffie-Hellman, usado pelo software GNU Privacy Guard, PGP e outros sistemas criptográficos.
RSA (Rivest, Shamir, Adleman). Amplamente utilizado em protocolos de comércio eletrônico. Use números primos.
Troca de chaves Diffie-Hellman (Merkle) (ou troca de chaves exponencial). Método e algoritmo para compartilhar segredo em um canal de comunicação desprotegido. Usado pela RSA.
NTRUEncrypt. Faça uso de anéis de polinômios com multiplicações de convolução.
Funções de resumo da mensagem
Um resumo da mensagem é um código resultante da criptografia de uma string ou dados de qualquer tamanho, processados por uma função hash.
MD5. Usado para verificar imagens ISO de CDs ou DVDs.
RIPEMD (resumo das mensagens de avaliação das primitivas de integridade do RACE). Baseado nos princípios do MD4 e similares ao SHA-1.
SHA-1 (algoritmo de hash seguro 1). Mais comumente usado do conjunto SHA de funções hash criptográficas relacionadas. Foi projetado pela agência da NSA.
HMAC. autenticação de mensagem com chave hash.
Tigre (TTH). Geralmente usado em hashes de árvores Tiger.
Criptográfico usando números pseudo-aleatórios
Veja. Geradores de números aleatórios
Técnicas em criptografia
Compartilhamento secreto, divisão secreta, divisão de chaves, algoritmos M de N.
Esquema de compartilhamento secreto de Shamir. Esta é uma fórmula baseada na interpolação polinomial.
Esquema de compartilhamento secreto de Blakley. É de natureza geométrica, o segredo é um ponto em um espaço m-dimensional.
Outras técnicas e descriptografia
Soma do subconjunto. Dado um conjunto de números inteiros, algum subconjunto soma igual a zero? Usado em criptografia.
Algoritmo de Shor. Algoritmo quântico capaz de descriptografar um código com base em funções assimétricas, como RSA.
Geometria
Embalagem de presente. Determinando o casco convexo de um conjunto de pontos.
Distância Gilbert-Johnson-Keerthi. Determinando a menor distância entre duas formas convexas.
Graham scan. Determinando o casco convexo de um conjunto de pontos no plano.
Interseção do segmento de linha. Descobrir se as linhas se cruzam com um algoritmo de linha de varredura.
Aponte no polígono. Testa se um determinado ponto está dentro de um determinado.
Interseção raio / plano.
* Interseção de linha / triângulo. * Caso particular de interseção de raio / plano.
Poligonização de superfícies implícitas. Aproximar uma superfície implícita com uma representação poligonal.
Triangulação.Método para avaliar a distância até um ponto, de ângulos a outros pontos, cuja distância é conhecida.
Gráficos
3D Surface Tracker Technology. Processo para adicionar imagens nas paredes de um vídeo enquanto as superfícies ocultas são levadas em consideração.
Bellman-Ford. Calcula os caminhos mais curtos em um gráfico ponderado (onde alguns dos pesos das arestas podem ser negativos).
Algoritmo de Dijkstra. Calcula os caminhos mais curtos em um gráfico com pesos de borda não negativos.
Métodos de perturbação. Um algoritmo que calcula os caminhos mais curtos localmente em um gráfico.
Floyd-Warshall. Resolve o problema de caminho mais curto de todos os pares em um gráfico direcionado ponderado.
Descoberta do ciclo de Floyd. Localiza ciclos nas iterações.
Johnson. Todos os pares de algoritmo de caminho mais curto no gráfico direcionado com ponderação esparsa.
Kruskal.Localiza uma árvore de abrangência mínima para um gráfico.
Prim's. Localiza uma árvore de abrangência mínima para um gráfico. Também chamado de algoritmo DJP, Jarník ou Prim – Jarník.
* Boruvka. * Encontra uma árvore de abrangência mínima para um gráfico.
Ford-Fulkerson. Calcula o fluxo máximo em um gráfico.
Edmonds-Karp. Implementação de Ford-Fulkerson.
Interruptor de abrangência mínimo sem bloqueio. Para uma troca telefônica.
Woodhouse-Sharp. Localiza uma árvore de abrangência mínima para um gráfico.
Baseado em primavera. Algoritmo para desenho de gráfico.
Húngaro. Algoritmo para encontrar uma combinação perfeita.
Algoritmo de coloração. Algoritmo de coloração de gráfico.
Vizinho mais próximo.Encontre o vizinho mais próximo.
Classificação topológica. Classifique um gráfico acíclico direcionado de forma que cada nó chegue antes de todos os nós nos quais possui arestas (de acordo com as direções).
O algoritmo de ancestrais menos comuns off-line de Tarjan. Calcule os ancestrais comuns mais baixos para pares de nós em uma árvore.
Gráficos
Algoritmo de linha de Bresenham. Usa variáveis de decisão para plotar uma linha reta entre 2 pontos especificados.
Paisagem Desenhe um cenário 3D.
* Algoritmo de linha DDA. * Usa matemática de ponto flutuante para plotar uma linha reta entre 2 pontos especificados.
Preenchimento de inundação. Preenche uma região conectada com uma cor.
Restauração de imagem. Restaurar foto, melhorar imagens.
Algoritmo de linha de Xiaolin Wu. Antialiasing de linha.
Algoritmo do pintor. Detecta partes visíveis de um cenário tridimensional.
Traçado de raio. Renderização de imagem realista.
Phong sombreamento. Um modelo de iluminação e um método de interpolação em computação gráfica em 3D.
Sombreamento Gouraud.Simule os diferentes efeitos da luz e da cor na superfície de um objeto 3D.
Renderização de Scanline. Constrói uma imagem movendo uma linha imaginária.
Iluminação global. Considera iluminação direta e reflexão de outros objetos.
Interpolação. Construindo novos pontos de dados, como no zoom digital.
Ressintetizador. Remova um objeto em uma foto e reconstrua o plano de fundo Usado pelo Photoshop e The Gimp. Tutorial de ressintetizador.
Algoritmo de interceptação de inclinação. É uma implementação da fórmula de interceptação de inclinação para desenhar uma linha.
Interpolação de spline. Reduz o erro com o fenômeno de Runge.
Tecnologia de rastreador de superfície 3D. Adicionando imagens ou vídeos nas paredes de um vídeo, superfícies ocultas sendo levadas em consideração.
Listas, matrizes e árvores
Procurando
Pesquisa no dicionário. Veja pesquisa preditiva.
Algoritmo de seleção. Localiza o k-ésimo item da lista.
Algoritmo de busca binária. Localiza um item em uma lista classificada.
Pesquisa pela primeira vez. Atravessa um gráfico nível por nível.
Pesquisa em profundidade. Percorre um gráfico ramo por ramo.
Melhor primeira pesquisa. Percorre um gráfico na ordem de importância provável usando uma fila de prioridade.
Uma pesquisa em árvore. * Caso especial da pesquisa pela primeira vez que usa heurísticas para melhorar a velocidade.
Pesquisa de custo uniforme. Uma pesquisa em árvore que localiza a rota de menor custo em que os custos variam.
Pesquisa preditiva.Pesquisa binária, que leva em consideração a magnitude do termo de pesquisa versus os valores alto e baixo da pesquisa.
Tabela de hash. Associe chaves a itens em uma coleção não classificada, para recuperá-los em um tempo linear.
Pesquisa interpolada. Veja pesquisa preditiva.
Classificação
Classificação de árvore binária. Classificação de uma árvore binária, incremental, semelhante à classificação por inserção.
Bogosort. Tipo aleatório ineficiente de um cartão de mesa.
Tipo de bolha. Para cada par de índices, troque os itens se estiver fora de ordem.
Classificação de balde. Divida uma lista em intervalos e classifique-os individualmente. Generaliza a classificação de pigeonhole.
Tipo de coquetel (ou bolha bidirecional, agitador, ondulação, transporte, tipo happy hour). A variação da classificação das bolhas, classificada nas duas direções, passa pela lista.
Tipo de pente. Variação eficiente do tipo de bolha que elimina "tartarugas", os pequenos valores próximos ao final da lista e utiliza lacunas entre os valores.
Contando classificação.Ele usa o intervalo de números na lista A para criar uma matriz B desse comprimento. Os índices em B são usados para contar quantos elementos em A têm um valor menor que i.
Gnomo. Semelhante à classificação por inserção, exceto que a movimentação de um elemento para o seu devido local é realizada por uma série de trocas, como na classificação por bolhas.
Heapsort. Converta a lista em um heap, continue removendo o maior elemento do heap e adicionando-o ao final da lista.
Classificação de inserção. Determine onde o item atual pertence na lista de itens classificados e insira-o lá.
Introsort. Ou tipo introspectivo. Ele começa no quicksort e muda para o heapsort em determinado nível de recursão.
Mesclar classificação.Classifique a primeira e a segunda metade da lista separadamente e mescle as listas classificadas.
Tipo de panqueca. Inverta elementos de algum prefixo de uma sequência.
Tipo de buraco de pombo. Preencha uma matriz vazia com todos os elementos de uma matriz a serem classificados, em ordem.
Carteiro tipo. Variante hierárquica de classificação de balde, usada pelas agências postais.
Ordenação rápida. Divida a lista em duas, com todos os itens da primeira lista antes de todos os itens da segunda lista .; depois classifique as duas listas. Muitas vezes, o método de escolha.
Classificação Radix. Classifica chaves associadas a itens, ou números inteiros, processando dígitos.
Classificação de seleção. Escolha o menor dos elementos restantes e adicione-o ao final da lista classificada.
Tipo de concha.Melhora a classificação de inserção com o uso de intervalos entre valores.
Smoothsort. Veja heapsort.
Tipo estocástico. Veja bogosort.
e muitos mais...