Muitas pessoas gostam de pensar em algoritmos como etapas de uma receita bem escrita. Desde que você siga cada passo da receita ao pé da letra, você terá um jantar comestível.
Contanto que você siga cada etapa do algoritmo, você encontrará a solução adequada. Algoritmos simples podem ser usados para projetar algoritmos complexos.
No século IX, Abu Abdullah Muhammad ibn Musa al-Khwarizmi, um matemático persa, introduziu conceitos algébricos e algarismos arábicos enquanto trabalhava em Bagdá. Durante o tempo, Bagdá era o centro internacional de estudos científicos. O processo de Abu Abdullah Muhammad ibn Musa al-Khwarizmi de realizar aritmética com algarismos arábicos foi chamado de algorismo. No século XVIII o nome evoluiu para algoritmo. Os algoritmos são um conjunto finito de instruções cuidadosamente definidas. Algoritmos são procedimentos que são usados para realizar alguma tarefa que terminará em um estado final definido. Algoritmos são usados em linguística, computadores e matemática.
Os computadores usam algoritmos
Como forma de processar informações, todos os programas de computador são criados com algoritmos (ou uma série deles) que fornecem ao computador uma lista de instruções a serem seguidas. Os computadores geralmente leem dados de um dispositivo de entrada ao usar um algoritmo para processar informações. Para serem bem-sucedidos, eles precisam ser cuidadosamente definidos para que um computador os leia. Os projetistas de programas precisam considerar todos os cenários possíveis que possam surgir e configurar uma série de algoritmos para resolver o problema. Os designers devem ter muito cuidado para não alterar a ordem das instruções; computadores não podem lidar com um algoritmo que está no lugar errado. Fluxo de controle refere-se a como a lista de algoritmos deve começar no topo e ir até o final, seguindo cada passo do caminho.
Alguns termos usados para descrever algoritmos incluem linguagens naturais, fluxogramas, pseudocódigo e linguagens de programação. Os algoritmos de expressão natural geralmente são vistos apenas em algoritmos simples. Os computadores geralmente usam linguagens de programação destinadas a expressar algoritmos.
Existem diferentes maneiras de classificar algoritmos
A primeira é pelo tipo específico de algoritmo. Os tipos de algoritmos incluem algoritmos recursivos e interativos, algoritmos determinísticos e não determinísticos e algoritmos de aproximação. O segundo método usado para classificar algoritmos é por sua metodologia de projeto ou seu paradigma. Paradigmas típicos são dividir e conquistar, o método guloso, programação linear, programação dinâmica, busca e enumeração, redução e paradigmas probabilísticos e heurísticos. Diferentes campos de estudo científico têm diferentes maneiras de classificar algoritmos, classificados para tornar seu campo o mais eficiente possível. Alguns tipos diferentes de algoritmos que utilizam diferentes campos científicos incluem; algoritmos de pesquisa, algoritmos de mesclagem, algoritmos de string, algoritmos combinatórios, criptografia, algoritmos de classificação, algoritmos numéricos, algoritmos de gráfico, algoritmos geométricos computacionais, algoritmos de compactação de dados e técnicas de análise sintática.
Os mecanismos de pesquisa da Internet usam algoritmos
Para auxiliar na otimização do mecanismo de pesquisa, os rastreador da web do Google usa um algoritmo de análise de links para indexar e classificar páginas da web. Em uma tentativa de evitar que os webmasters usem esquemas dissimulados para influenciar a otimização de mecanismos de pesquisa, muitos mecanismos de pesquisa da Internet divulgam tão pouco sobre os algoritmos que usam em suas técnicas de otimização.