Consultoria em Ti, Sistemas e Aplicativos



Algoritmos

 

 


 
  • Algoritmo - Um algoritmo é a descrição de um padrão de comportamento, expressado em termos de um repertório bem definido e finito de ações "primitivas", das quais damos por certo que elas podem ser executadas.

Fragmento de algoritmo, pseudo-código que realiza uma tarefa

O conceito central da programação e da ciência da computação é o de algoritmo. Programar é basicamente consruir algoritmos. Wirth apresenta a programação estruturada como "a arte ou técnica de construir e formular algoritmos de uma forma sistemática". Programas são - segundo Wirth - "formulações concretas de algoritmos abstratos, baseados em representações e estruturas específicas de dados".
Nesta definição aparece o outro aspecto fundamental da construção de programas: as estruturas de dados usadas no algoritmo para representar as informações do problema a ser resolvido. De fato, no processo de construção de programas, a formulação do algoritmo e a definição das estruturas de dados a serem usadas estão intimamente ligadas. A tal ponto, que "decisões sobre a estruturação dos dados não podem ser feitas sem conhecimento dos algoritmos aplicados a eles, e vice-versa: a estrutura e a escolha dos algoritmos depende muitas vezes fortemente da estrutura dos dados".
Num algoritmo (e em particular num programa) devemos distinguir claramente dois aspectos complementares: um aspecto estático e um aspecto dinâmico.
- A formulação de um algoritmo geralmente consiste em um texto contendo comandos (instruções) que devem ser executados numa ordem prescrita. Esse texto é uma representação concreta do algoritmo e tem um caráter evidentemente estático, atemporal, expandido somente no espaço (da folha de papel).
- Por outra parte este texto não nos interessa em si, mas pelos efeitos que pode evocar sua execução no tempo, dado um conjunto de "valores iniciais". Cada execução de um algoritmo é um evento dinâmico, evoluindo no tempo.

Exemplo de algoritmo

Um algoritmo é, em outras palavras, uma norma executável para estabelecer um certo efeito desejado, que na prática será geralmente a obtenção de uma solução a um certo tipo de problema. Na nossa vida cotidiana encontramos constantemente algoritmos: instruções para o uso, indicações de montagem, receitas de cozinha, partituras musicais etc. Quando perguntamos, por exemplo, pelo caminho para a rodoviária, perguntamos de fato por uma algoritmo cujo seguimento nos leva a nosso objetivo. Uma receita de bolo é um exemplo de algoritmo.
Um algoritmo deve ser determinístico, isto é, dadas as mesmas condições iniciais deve produzir, depois de executado, os mesmos resultados.
O projeto de algoritmos é fortemente influenciado pelo estudo de seus comportamentos. Depois que um problema é analisado e decisões de projeto são finalizadas, o algoritmo tem que ser implementado em um computador. Neste momento o projetista tem que estudar as várias opções de algoritmos a serem utilizados, onde os aspectos de tempo de execução e espaço ocupado são considerações importantes. Muitos destes algoritmos são encontrados em áreas tais como pesquisa operacional, otimização, teoria dos grafos, estatística, probabilidades, entre outras.
Na área de análise de algoritmos, existem dois tipos de problemas bem distintos, conforme apontou Knuth (1971):
(i) Análise de um algoritmo particular. Qual é o custo de usar um dado algoritmo para resolver um problema específico?
(ii) Análise de uma classe de algoritmos. Qual é o algoritmo de menor custo possível para resolver um problema particular? Por exemplo, é possível estimar o número mínimo de comparações necessárias para ordenar n números através de comparações sucessivas.

 



Rua Macaé, 541 Casa C - Bairro da Graça
Cep: 31140-060 Belo Horizonte - MG - Brasil
Tel.: +55 (31) 3442-4801

Horário de funcionamento:
Segunda a Quinta: de 09:00hs às 17:30hs
Sexta-feira e véspera de feriados judaicos: de 09:00hs às 15:00hs
Intervalo para almoço: de 12:00hs às 13:30hs

Copyright 2017- Ronaldo Cesar Soares de Oliveira - ME! Todos os direitos reservados.