Veja neste artigo os conceitos básicos de algoritm.
Problemas
são questões propostas em busca de uma solução. Com o propósito de
conceder uma solução para certo problema, existem os algoritmos, cada
problema que é decídivel possui um algoritmo que determina uma solução
para cada instância desse problema.
Algoritmos
descrevem passo a passo os procedimentos para chegar a uma solução de
um problema e podem ser representados de três formas:
- A forma de descrição narrativa, na qual se usa a linguagem nativa de quem escreve. Essa forma não segue um padrão definido e pode sofrer várias interpretações por quem lê;
- Outra forma de representar um algoritmo é o fluxograma, uma representação visual que utiliza símbolos que são figuras geométricas, cada uma com sua função específica. Essa representação, como o próprio nome diz, mostra o fluxo do algoritmo e também elimina as várias interpretações que a descrição narrativa permitia sobre um algoritmo;
- Por último, existe a linguagem algoritma (Pseudocódigo ou Portugol) que é a que mais se aproxima da estrutura de uma linguagem estruturada.
Um
tipo de algoritmo muito usado na resolução de problemas computacionais
são os algoritmos de ordenação, que servem para ordenar/organizar uma
lista de números ou palavras de acordo com a sua necessidade. As
linguagens de programação já possuem métodos de ordenação, mas é bom
saber como funcionam os algoritmos, pois há casos de problemas em que o
algoritmo de ordenação genérico não resolve, às vezes é necessário
modificá-lo.
Os
mais populares algoritmos de ordenação são: Insertion sort, Selection
sort, Bubble sort, Comb sort, Quick sort, Merge sort, Heap sort e Shell
sort. Neste artigo serão estudados os algoritmos Bubble sort, Selection
Sort, Quick sort e o Insertion sort, explicando o funcionamento de cada
um deles.
Definição de Algoritmos
O
Algoritmo é um esquema de resolução de um problema. Pode ser
implementado com qualquer sequência de valores ou objetos que tenham uma
lógica infinita (por exemplo, a língua portuguesa, a linguagem Pascal, a
linguagem C, uma sequência numérica, um conjunto de objetos tais como
lápis e borracha), ou seja, qualquer coisa que possa fornecer uma
sequência lógica.
Podemos
ilustrar um algoritmo pelo exemplo de uma receita culinária, embora
muitos algoritmos sejam mais complexos. Um Algoritmo mostra passo a
passo os procedimentos necessários para resolução de um problema.
Descrição Narrativa
A descrição narrativa é o uso da sua língua nativa para descrição dos passos para se resolver um problema.
A vantagem dessa forma de representação é que qualquer um pode fazê-la sem ter conhecimentos avançados.
A
desvantagem é que não há um padrão, cada pessoa pode escrever como
quiser. Outra desvantagem é a imprecisão, ou seja, a descrição pode não
ficar clara e pode-se tirar várias interpretações diferentes de um mesmo
algoritmo.
Abaixo temos um exemplo de algoritmo usando a descrição narrativa:
Listagem 1: Algoritmo “Calculando a média” em descrição narrativa
Início Passo 1: Obter os valores de n1,n2,n3; Passo 2: Somar os valores do passo 1; Passo 3: Dividir o resultado obtido no Passo 2 por 3; Passo 4: Se o resultado do Passo 3 for maior ou igual a 6 então escreva “Parabéns você foi aprovado”, senão, escreva “Infelizmente você ficou de exame” e vá para o fim do programa Fim
Fluxograma
O
fluxograma passou a ser usado para eliminar ambiguidades dos
algoritmos. São símbolos gráficos padronizados, cada um representado por
uma forma geométrica que implica em uma ação, instrução ou um comando
distinto.
Esta
forma é intermediária a descrição narrativa e ao pseudocódigo, pois é
mais precisa do que a primeira, porém, não se preocupa com detalhes de
implementação do programa, como os tipos das variáveis usadas.
Figura 1: Algoritimo “Calcular Média” em representação de fluxograma
Essa forma de representação surgiu para tentar suprir as deficiências das outras representações. Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, mas que já lembram um pouco a estrutura de uma linguagem de programação estruturada, ou seja, a pseudolinguagem se assemelha muito ao modo como os programas são escritos. Isso vai permitir que os algoritmos sejam traduzidos, quase que diretamente, para uma linguagem de programação.
Bons estudos!!
Linguagem Algoritma (Pseudocódigo ou Portugol)
Essa forma de representação surgiu para tentar suprir as deficiências das outras representações. Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, mas que já lembram um pouco a estrutura de uma linguagem de programação estruturada, ou seja, a pseudolinguagem se assemelha muito ao modo como os programas são escritos. Isso vai permitir que os algoritmos sejam traduzidos, quase que diretamente, para uma linguagem de programação.
Listagem 2: Algoritmo “Calcular Média” em linguagem altoritma
algoritmo “CalcularMedia” var n1,n2,n3,media :real; inicio leia(n1,n2,n3); media← (n1+n2+n3)/3; se media>=6 entao escreva(“Parabéns você foi aprovado”); senão escreva(“Infelizmente você ficou de exame”); Fimse fimalgoritmo
Fonte: (devmedia.com.br)