Algoritmo: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
LinkFA-Bot (discussão | contribs)
m Bot: Bom interwiki +uk, Link FA -en, -sr
LeoBot (discussão | contribs)
correções ortográficas utilizando AWB
Linha 45:
escreva("digite outro numero");
leia(B);
Soma <- A + B;
escreva(SOMA);
fim.
Linha 55:
 
* '''Recursivo''' ou '''iterativo''' - um [[Recursividade (ciência da computação)|algoritmo recursivo]] possui a característica de invocar a si mesmo repetidamente até que certa condição seja satisfeita e ele é terminado, que é um método comum em [[programação funcional]]. Algoritmos iterativos usam estruturas de repetição tais como laços, ou ainda estruturas de dados adicionais tais como [[LIFO|pilhas]], para resolver problemas. Cada algoritmo recursivo possui um algoritmo iterativo equivalente e vice-versa, mas que pode ter mais ou menos complexidade em sua construção.
 
* '''Lógico''' - um algoritmo pode ser visto como uma dedução lógica controlada. O componente lógico expressa os axiomas usados na computação e o componente de controle determina a maneira como a dedução é aplicada aos axiomas. Tal conceito é base para a [[programação lógica]].
 
* '''Serial''' ou '''paralelo''' - algoritmos são geralmente assumidos por serem executados instrução a instrução individualmente, como uma lista de execução, o que constitui um algoritmo serial. Tal conceito é base para a [[programação imperativa]]. Por outro lado existem algoritmos executados paralelamente, que levam em conta as [[arquitetura de computadores|arquiteturas de computadores]] com mais de um [[processador]] para executar mais de uma instrução ao mesmo tempo. Tais algoritmos dividem os problemas em subproblemas e o delegam a quantos processadores estiverem disponíveis, agrupando no final o resultado dos subproblemas em um resultado final ao algoritmo. Tal conceito é base para a [[Computação paralela|programação paralela]]. De forma geral, algoritmos iterativos são paralelizáveis; por outro lado existem algoritmos que não são paralelizáveis, chamados então problemas inerentemente seriais.
 
* '''Determinístico''' ou '''não-determinístico''' - algoritmos determinísticos resolvem o problema com uma decisão exata a cada passo enquanto algoritmos não-determinísticos resolvem o problema ao deduzir os melhores passos através de estimativas sob forma de [[heurística]]s.
 
* '''Exato''' ou '''aproximado''' - enquanto alguns algoritmos encontram uma resposta exata, algoritmos de aproximação procuram uma resposta próxima a verdadeira solução, seja através de estratégia determinística ou aleatória. Possuem aplicações práticas sobretudo para problemas muito complexos, do qual uma resposta correta é inviável devido à sua [[complexidade computacional]].
 
Linha 82 ⟶ 78:
Alguns algoritmos são executados em tempo linear, de acordo com a entrada, enquanto outros são executados em tempo exponencial ou até mesmo nunca terminam de serem executados. Alguns problemas possuem múltiplos algoritmos enquanto outros não possuem algoritmos para resolução.
 
{{Ref-sectionreferências}}
* [http://www.novateceditora.com.br/livros/algoritmos/ Algoritmos e Programação - Teoria e Prática: para universitários e profissionais de informática]: Novatec Editora. ISBN 85-7522-073-X
 
Linha 93 ⟶ 89:
* [http://www.nist.gov/dads/ Dictionary of Algorithms and Data Structures]
{{Computação}}
 
{{Bom interwiki|uk}}
 
[[Categoria:Algoritmos| ]]
[[Categoria:Terminologia informática]]
 
{{Bom interwiki|uk}}
 
[[af:Algoritme]]