Você está na página 1de 8

nós criamos | nossa essência | Pessoas

O que é um algoritmo de computador:


características, tipos e exemplos
Raquel Maluenda de Vega
Faz 2 anos

A palavra «algoritmo» é um conceito comumente relacionado ao campo da computação e está cada


vez mais presente no nosso dia a dia . Neste post, explicamos o que é um algoritmo de computador
e analisamos suas características , dissecamos os principais tipos de algoritmos que existem e
compartilhamos um exemplo real de algoritmo . Vamos lá!

O que você vai ver neste post?

O que é um algoritmo de computador?


Partes de um algoritmo de computador
Características dos algoritmos
Tipos de algoritmos e exemplos
algoritmos de pesquisa
Algoritmos de classificação
algoritmos gananciosos
programaçao dinamica
Algoritmos probabilísticos

Exemplo real de algoritmo de computador


conclusão

O que é um algoritmo de computador?


Um algoritmo de computador é um conjunto de instruções definidas, ordenadas e limitadas para
resolver um problema, realizar um cálculo ou realizar uma tarefa. Ou seja, um algoritmo é um
procedimento passo a passo para atingir um fim. A partir de um estado inicial e informações, uma
série de etapas ordenadas são seguidas para chegar à solução de uma situação. 

Em programação , um algoritmo supõe o passo anterior para começar a escrever o código . Primeiro
devemos encontrar uma forma de obter a solução do problema (definir o algoritmo do
computador), para que posteriormente, através do código, possamos dizer à máquina quais ações
queremos que ela realize. Dessa forma, um programa de computador nada mais seria do que um
conjunto de algoritmos ordenados e codificados em uma linguagem de programação para poder ser
executado em um computador.

No entanto, os algoritmos não são algo exclusivo das áreas de matemática, lógica e computação.
Usamos vários algoritmos para resolver problemas em nossas vidas diárias . Alguns dos exemplos
mais comuns são manuais de instruções ou receitas culinárias. 

Partes de um algoritmo de computador


As três partes de um algoritmo são:

1. Entrada. Informação que damos ao algoritmo com o qual trabalhará para oferecer a solução
esperada.
2. Processo. Conjunto de passos para que, a partir dos dados de entrada, chegue à solução da
situação. 
3. Resultado. Resultados, a partir da transformação dos valores de entrada durante o processo.

Desta forma, um algoritmo de computador parte de um estado inicial e alguns valores de entrada,
segue uma série de etapas sucessivas e chega a um estado final no qual uma solução foi obtida.

Características dos algoritmos


Da mesma forma, os algoritmos apresentam uma série de características comuns . São:
Preciso . Objetivos, sem ambiguidade. 
Encomendado . Apresentam uma sequência clara e precisa para chegar à solução.
Finitos . Eles contêm um certo número de etapas.
Concreto . Eles oferecem uma solução específica para a situação ou problema colocado.
Definido . O mesmo algoritmo deve dar o mesmo resultado ao receber a mesma entrada. 

Tipos de algoritmos e exemplos


Existem várias classificações de algoritmos , com base em diferentes critérios. De acordo com seu
sistema de sinais (como descrevem os passos a seguir), é feita uma distinção entre algoritmos
quantitativos e qualitativos , se o fizerem por meio de cálculos matemáticos ou sequências lógicas.
Da mesma forma, independentemente de exigirem ou não o uso de um computador para sua
resolução, são classificados como computacionais e não computacionais .

Mas, se olharmos para sua função (o que faz) e sua estratégia para chegar à solução (como faz),
encontramos muitos outros tipos de algoritmos. Destacamos os seguintes cinco tipos de algoritmos
de computador :

Infográficos de tipos de algoritmos de computador.

algoritmos de pesquisa
Os algoritmos de pesquisa localizam um ou mais elementos que possuem uma série de
propriedades em uma estrutura de dados.

Exemplos de algoritmos de pesquisa

Existem vários tipos de buscas, dentre as quais se destacam: 

Pesquisa sequencial. No qual o elemento a ser localizado é comparado com cada elemento do
conjunto até que seja encontrado ou até que tenhamos comparado todos eles.
Pesquisa binária. Em um conjunto de elementos ordenados, faz uma comparação com o elemento
localizado no meio e, caso não sejam iguais, continua a busca no meio onde possa estar. E assim
por diante em intervalos cada vez menores de elementos.

Algoritmos de classificação

Eles reorganizam os elementos de uma lista de acordo com uma relação de ordem. As mais comuns
são a ordem numérica e a ordem lexicográfica. Uma ordem eficiente otimiza o uso de algoritmos
como busca e facilita a obtenção de resultados legíveis por pessoas e não apenas por máquinas.

Exemplos de algoritmos de classificação

Alguns algoritmos de ordenação são:

Tipo de bolha. Compara cada item na lista a ser classificado com o próximo e troca sua posição se
eles não estiverem na ordem correta. A lista inteira é verificada várias vezes até que não sejam
necessárias mais trocas.
Ordenar por seleção. Estamos colocando o menor elemento disponível em cada uma das
posições da lista consecutivamente.
Ordenação rápida. Escolhemos um elemento do conjunto (pivô) e realocamos o resto para cada
um de seus lados, dependendo se são maiores ou menores que o elemento que estamos tomando
como referência. Repetimos o procedimento para cada subconjunto.
algoritmos gananciosos

Algoritmos gananciosos consistem em uma estratégia de busca que segue uma heurística na qual a
melhor opção ótima é escolhida em cada etapa local para se chegar a uma solução geral ótima. Ou
seja, em cada etapa do processo eles escolhem o melhor elemento (elemento promissor) e
verificam se ele pode fazer parte de uma solução global viável. Eles são normalmente usados ​para
resolver problemas de otimização.

Exemplos de algoritmos gananciosos

Às vezes, esses algoritmos não encontram a solução global ótima, pois ao tomar uma decisão levam
em consideração apenas as informações das decisões que tomaram até o momento e não as futuras
que possam adotar. Alguns casos em que algoritmos gulosos alcançam soluções ótimas são:

Problema da mochila fracionada (KP). Temos uma coleção de objetos (cada um com um valor e
peso associados) e devemos determinar quais colocar na mochila para transportar o valor
máximo sem ultrapassar o peso que ela pode suportar. 
O algoritmo de Dijkstra . Usado para determinar o caminho mais curto de um vértice de origem
para os outros vértices de um grafo, que possui pesos em cada aresta.
Codificação de Huffman . Método de compactação de dados sem perda de informações, que
analisa a frequência de aparecimento de caracteres em uma mensagem e atribui a eles um código
de comprimento variável . Quanto maior a frequência, mais curto o código corresponderá.

programaçao dinamica

A programação dinâmica é um método de resolução de problemas no qual dividimos um problema


complexo em subproblemas e computamos e armazenamos suas soluções, para que não precisem
ser recalculados posteriormente para chegar à solução do problema. A programação dinâmica
reduz o tempo de execução de um algoritmo otimizando a recursão.

É claro que, para ser aplicado a um problema, ele deve ter subestruturas ótimas e subproblemas
sobrepostos . Ou seja, que soluções ótimas de subproblemas podem ser usadas para encontrar a
solução ótima do problema como um todo e que o problema pode ser dividido em subproblemas
que são reutilizados para oferecer o resultado global.

Usos da programação dinâmica

Alguns casos em que é usado são:

A série de Fibonacci. Sucessão de números que começam com "0" e "1" e, a partir deles, cada
número é o resultado da soma dos dois que o precedem. A relação de recorrência o define. 
Problema da mochila .

Algoritmos probabilísticos

É uma técnica que utiliza uma fonte de aleatoriedade como parte de sua lógica. Ao amostrar
aleatoriamente a entrada , chega-se a uma solução que pode não ser totalmente ótima, mas é
adequada para o problema em questão.

É usado em situações com limitações de tempo ou memória e quando uma boa solução média pode
ser aceita, uma vez que soluções diferentes e algumas erradas podem ser obtidas a partir dos
mesmos dados. Para aumentar a probabilidade de oferecer uma solução correta, o algoritmo é
repetido várias vezes com diferentes subamostras aleatórias e os resultados são comparados. 

Tipos de algoritmos probabilísticos

Existem dois tipos principais de algoritmos probabilísticos :

Algoritmo de Monte Carlo. Dependendo da entrada, há uma pequena chance de você perder ou
encontrar uma solução. A probabilidade de erro pode ser reduzida aumentando o tempo de
computação.
Algoritmo de Las Vegas. É executado em um determinado período de tempo. Se encontrar uma
solução nesse tempo estará correto, mas é possível que o tempo se esgote e nenhuma solução
seja encontrada.

 
Exemplo real de algoritmo de computador
A seguir, veremos um exemplo de algoritmo de computador que usamos este ano para resolver um
enigma que colocamos para você em nossas redes sociais para comemorar o Dia do Programador . 

O desafio ou situação inicial que propusemos foi o seguinte: «Se Java é Ñfaf e Javascript é
Ñfafxhwnuy, resolva a seguinte frase com sua solução programada através da roda de criptografia:
KJPNE INF IJ PTX UWTLWFQFITWJX».

Situação inicial para o algoritmo.

Para descriptografar a mensagem oculta, projetamos um algoritmo de computador , um conjunto


de instruções ou etapas para resolver o enigma:

function decoded(encodedTxt) {

let alfabeto = "abcdefghijklmnñopqrstuvwxyz".split("");

deixe decodificadoTxt = "";

encodedTxt.toLowerCase().split("").forEach(item => {

if (item === " ") {

decodificadoTxt += item;

senão if (alphabet.indexOf(item) != -1) {

if (alphabet.indexOf(item) >= 5) {

decodedTxt += alphabet[(alphabet.indexOf(item) - 5)];

else if (alphabet.indexOf(item) <= 4) {

decodedTxt += alphabet[alphabet.length + alphabet.indexOf(item) - 5];

});

console.log(decodedTxt.toUpperCase());

const txtEncrypted = 'KJPNE INF IJ PTX UWTLWFQFITWJX';

decoded(txtEncrypted);

Finalmente, nuestro algoritmo nos proporcionó la solución que buscábamos: el mensaje FELIZ DIA
DE LOS PROGRAMADORES.

Conclusión
Como vimos, um algoritmo de computador nada mais é do que um conjunto de instruções para
atingir um fim. Os algoritmos estão muito presentes no campo da computação, mas também no
nosso dia a dia. Existem inúmeros tipos e exemplos de algoritmos e, dependendo da situação em
que nos encontramos, um ou outro nos ajudará a chegar à solução que precisamos.

Gostaria de impulsionar o seu negócio com uma solução digital ? Entre em contato conosco e nós o
ajudaremos a realizá-lo!

Categorias: Desenvolvimento Web

voltar

Sair da versão móvel

Você também pode gostar