Características do algoritmo, para que serve, peças, exemplos

3095
Simon Doyle
Características do algoritmo, para que serve, peças, exemplos

UMA algoritmo é um conjunto de instruções destinadas a realizar uma tarefa específica. Ou seja, é um procedimento sistemático que em um número finito de etapas produz a resposta a uma pergunta ou a solução de um problema. Um exemplo de algoritmo é o motor de busca Google, no qual, ao inserir uma palavra, dá vários resultados em forma de páginas web.

Pode ser um processo complexo, como reproduzir um arquivo de música, ou uma operação simples, como adicionar dois números. Na programação de computadores, os algoritmos são criados como funções. Essas funções são pequenos programas que podem ser referenciados por um programa maior.

Um aplicativo de visualização de imagens pode conter uma biblioteca de funções, cada uma usando um algoritmo específico para representar diferentes formatos de arquivo de imagem..

Um programa de edição de imagem pode conter algoritmos projetados para processar dados de imagem. Alguns exemplos são corte, redimensionamento, nitidez, desfoque, redução de olhos vermelhos e realce de cor..

Índice do artigo

  • 1 Características de um algoritmo
    • 1.1 Clareza e precisão
    • 1.2 Entradas bem definidas
    • 1.3 Saídas bem definidas
    • 1.4 Finitude
    • 1.5 viável
    • 1.6 Independência de linguagem
    • 1.7 Programas eficientes
  • 2 O que é um algoritmo para?
    • 2.1 Compressão de arquivo
    • 2.2 Criptografia de dados
  • 3 Como funciona um algoritmo?
    • 3.1 Caso de exemplo
  • 4 partes de um algoritmo
    • 4.1 Aquisição de dados de entrada
    • 4.2 Cálculo
    • 4.3 Seleção
    • 4.4 Iteração
    • 4.5 Relatório de resultados ou saída
  • 5 tipos de algoritmos
    • 5.1 Algoritmo recursivo
    • 5.2 Algoritmo de divisão e conquista
    • 5.3 Algoritmo de programação dinâmica
    • 5.4 Algoritmo de força bruta
    • 5.5 Algoritmo de retrocesso
  • 6 Exemplos de algoritmos
    • 6.1 Algoritmo recursivo
    • 6.2 Algoritmo de programação dinâmica
    • 6.3 Algoritmo de retrocesso
    • 6.4 Vários exemplos
  • 7 referências

Características de um algoritmo

Clareza e precisão

O algoritmo deve ser claro e inequívoco. Cada um de seus passos ou ações deve ser definido com precisão, rigorosamente claro em todos os aspectos e deve, inequivocamente, ter apenas um significado..

Entradas bem definidas

Um algoritmo tem zero ou mais entradas, retiradas de um conjunto específico de objetos. Se o algoritmo indica que os dados de entrada devem ser obtidos, esses dados de entrada devem ser bem definidos.

Saídas bem definidas

O algoritmo sempre tem uma ou mais saídas, que estão relacionadas às entradas. O algoritmo deve definir claramente quais informações de saída serão produzidas e também deve ser bem definido.

Finitude

O algoritmo deve ser finito, ou seja, deve sempre terminar em algum ponto, após um número finito de passos, e não ficar preso a loops infinitos ou semelhantes.

Viável

O algoritmo deve ser inteligente e simples, de forma que possa ser executado sem problemas com os recursos disponíveis. Portanto, não deve conter nenhuma tecnologia futura.

Independência de linguagem

O algoritmo projetado deve ser independente da linguagem, ou seja, deve consistir apenas em instruções simples que podem ser implementadas em qualquer linguagem de programação e, no entanto, o resultado é sempre o mesmo, conforme o esperado.

Programas eficientes

Sempre existem maneiras diferentes de realizar uma operação específica dentro de um programa. Portanto, os programadores procuram criar os algoritmos mais eficientes possíveis..

Com o uso de algoritmos muito eficientes, pode-se garantir que os programas rodam na maior velocidade, usando um mínimo de recursos do sistema.

No entanto, os algoritmos nem sempre são produzidos perfeitamente na primeira vez. Por esse motivo, os desenvolvedores estão procurando melhorá-los para incluí-los em futuras atualizações de software..

Portanto, sempre que uma nova versão de um aplicativo com melhor desempenho for conhecida, significa que esta versão contém algoritmos mais eficientes.

Para que serve um algoritmo?

O algoritmo é um instrumento extremamente útil, utilizado para realizar trabalhos. Na computação, a escolha do melhor algoritmo garante que o computador execute a tarefa dada da melhor maneira possível.

Portanto, serve para otimizar um programa de computador com os recursos disponíveis. Ou seja, quando você decide resolver um problema por meio dos melhores algoritmos, você deseja a melhor combinação de velocidade do programa e menor consumo de memória.

Os diferentes algoritmos que podem ser estudados são tão variados quanto os problemas que resolvem. No entanto, é muito provável que o problema que você está tentando resolver seja semelhante a outro problema em alguns aspectos..

Ao compreender uma ampla gama de algoritmos, você pode escolher o mais adequado para um problema e aplicá-lo corretamente.

Compressão de arquivo

Esses algoritmos são ajustados e otimizados especificamente para os tipos de arquivos que eles têm como alvo. Por exemplo, cada formato de áudio usa uma maneira diferente de armazenar dados. Quando decodificado pelo codec de áudio, ele irá gerar um arquivo de som semelhante à forma de onda original.

Criptografia de dados

Algoritmos também são usados ​​para proteger dados ou linhas de comunicação. Em vez de armazenar dados compactados para que usem menos espaço em disco, eles são armazenados de uma maneira que outros programas não podem detectá-los. Quando os dados são criptografados, o que é armazenado não se parece com o que é.

Como funciona um algoritmo?

Para fazer com que um computador faça algo, você precisa escrever um programa de computador. Para escrever este programa você tem que dizer ao computador, passo a passo, o que você quer que ele faça.

O computador então executa o programa, executando cada instrução automaticamente, para atingir o resultado final. Além de indicar o que fazer com o computador, você também pode escolher como ele fará, através do algoritmo, sendo a técnica básica utilizada para fazer o trabalho.

Caso de exemplo

Digamos que você tenha um amigo que chega no aeroporto e precisa ir do aeroporto até a nossa casa. Estes são quatro algoritmos diferentes que podem ser fornecidos para resolver esta situação:

Algoritmo de chamada

- Quando o avião chegar, liga para o meu celular.

- Encontre-me fora da área de retirada de bagagem.

Algoritmo de táxi

- Vá para a praça de táxis.

- Pegue um táxi.

- Dê ao motorista meu endereço.

Algoritmo de barramento

- Saindo do aeroporto, pegue o ônibus número 70.

- Quando você chegar à Main Street, pegue o ônibus 14.

- Desça na rua Elmo.

- Caminhe dois quarteirões para o norte até minha casa.

Algoritmo alugar um veículo

- Pegue um ônibus para o local onde eles alugam carros.

- Alugar um veículo.

- Siga as instruções do GPS para chegar à minha casa.

Todos os quatro algoritmos realizam exatamente o mesmo objetivo, mas cada um o faz de maneira diferente. Cada algoritmo também tem um custo e um tempo de viagem diferentes. Portanto, o algoritmo é escolhido de acordo com as circunstâncias.

Partes de um algoritmo

Aquisição de dados de entrada

O algoritmo deve ter certos recursos para poder ler os valores de uma fonte externa. A maioria dos algoritmos requer alguns valores de dados para definir um problema específico. Por exemplo, os coeficientes de um polinômio.

Cálculo

O algoritmo deve ter certos recursos para poder realizar cálculos aritméticos, comparações, verificar condições lógicas, etc..

Seleção

O algoritmo deve ter certos meios para poder escolher entre dois ou mais cursos de ação possíveis, com base nos dados iniciais, entrada do usuário e / ou resultados calculados..

Iteração

O algoritmo deve ter certos meios para poder executar repetidamente um conjunto de instruções, seja por um número fixo de vezes ou até que alguma condição lógica seja satisfeita.

Relatório de resultados ou saída

O algoritmo deve ter certos recursos para ser capaz de informar ao usuário os resultados que calculou, ou para poder solicitar dados adicionais do usuário.

Tipos de algoritmos

Algoritmo recursivo

Este algoritmo é muito interessante, pois se autodenomina com um valor diferente como parâmetro de entrada, que obteve após ter resolvido o parâmetro de entrada anterior. Ou seja, ele chama a si mesmo repetidamente até que o problema seja resolvido.

Problemas como a Torre de Hanói ou a busca profunda de um gráfico podem ser facilmente resolvidos usando esses tipos de algoritmos..

Algoritmo de divisão e conquista

Nesses algoritmos, ele é dividido em duas partes. Na primeira parte, o problema em questão é dividido em subproblemas menores do mesmo tipo. Da mesma forma, na segunda parte seus subproblemas são resolvidos, combinando as duas partes para produzir a solução final do problema..

Por exemplo, com esses algoritmos, você pode realizar classificações de combinação e classificações rápidas.

Algoritmo de programação dinâmica

Esses algoritmos funcionam lembrando os resultados da execução anterior e usando-os para encontrar novos resultados. Ou seja, eles resolvem problemas complexos dividindo-os em vários subproblemas simples e, em seguida, resolvendo cada um deles, armazenando-os posteriormente para uso posterior..

Algoritmo de força bruta

Este algoritmo procura cegamente todas as soluções possíveis para encontrar uma ou mais soluções que possam resolver uma função. Você pode pensar na força bruta como o uso de todas as combinações possíveis de números para abrir um cofre..

Algoritmo de fallback

Este algoritmo resolve problemas recursivamente e tenta resolver um problema resolvendo cada parte dele. Se a solução falhar, ela é removida e retrocedida para encontrar outra solução.

Ou seja, este algoritmo resolve um subproblema, mas se isso não resolver o problema total, ele desfaz a última etapa e começa novamente para encontrar a solução para o problema..

Exemplos de algoritmos

Algoritmo recursivo

Este pseudocódigo encontra o fatorial de um número inteiro não negativo "N", usando um algoritmo de recursão:

Algoritmo de programação dinâmica

A sequência de Fibonacci é um bom exemplo de algoritmo de programação dinâmica. Você pode ver neste pseudocódigo:

- Se (N = 0 ou N = 1), Fibonacci (N) = 0

- Caso contrário, Fibonacci (N) = Fibonacci (N-1) + Fibonacci (N-2)

Algoritmo de fallback

O problema do xadrez com 8 rainhas é um bom exemplo. Este problema estabelece que existem 8 peças da rainha em um tabuleiro de xadrez e devem ser colocadas de forma que nenhuma das rainhas esteja em posição de atacar qualquer outra depois de organizadas..

Vários exemplos

- Algoritmo para diagnóstico de HIV.

Algoritmo para o diagnóstico do HIV. Fonte: Immunopedia / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

- Os mecanismos de pesquisa na Internet usam algoritmos proprietários para exibir os resultados mais relevantes de seu índice de pesquisa para consultas específicas..

- Receitas, como equações matemáticas, são algoritmos.

- O e-mail sabe para onde enviar graças aos algoritmos.

- O conteúdo visto nas redes sociais vem por meio de algoritmos. Na verdade, tudo o que é feito na web é produto de algoritmos.

- Os videogames são narrativas algorítmicas.

- Aplicativos de smartphone são apenas algoritmos.

- A maioria das transações financeiras são realizadas usando algoritmos.

- Cada vez que uma coluna é classificada em uma planilha, algoritmos intervêm.

Referências

  1. Lee Rainie (2017). Dependente de código: prós e contras da era do algoritmo. Pew Research Center. Retirado de: pewresearch.org.
  2. Termos técnicos (2020). Algoritmo. Retirado de: techterms.com.
  3. Britannica (2020). Algoritmo. Retirado de: britannica.com.
  4. Educba (2020). Tipos de algoritmos. Retirado de: educba.com.
  5. How to Geek (2016). O que são algoritmos de computador e como funcionam? Retirado de: howtogeek.com.
  6. Como as coisas funcionam (2020). O que é um algoritmo de computador? Retirado de: computer.howstuffworks.com.

prydkwei ([email protected]) 2022-08-16 07:35:54

PokemongoPlanet | Características do algoritmo, para que serve, peças, exemplos [url=http://www.g7dno20k21708tq0wchb61zb6y29nh57s.org/]uprydkwei[/url] <a href="http://www.g7dno20k21708tq0wchb61zb6y29nh57s.org/">aprydkwei</a> prydkwei http://www.g7dno20k21708tq0wchb61zb6y29nh57s.org/

ftygsvsbr ([email protected]) 2022-07-31 03:39:50

PokemongoPlanet | Características do algoritmo, para que serve, peças, exemplos [url=http://www.gh1w40syu3h90g5d042442uzi86cern8s.org/]uftygsvsbr[/url] <a href="http://www.gh1w40syu3h90g5d042442uzi86cern8s.org/">aftygsvsbr</a> ftygsvsbr http://www.gh1w40syu3h90g5d042442uzi86cern8s.org/

xhqmxqqby ([email protected]) 2022-07-24 23:07:40

PokemongoPlanet | Características do algoritmo, para que serve, peças, exemplos xhqmxqqby http://www.gy08o5g1954944955pu1wvlgkh7k4rsqs.org/ <a href="http://www.gy08o5g1954944955pu1wvlgkh7k4rsqs.org/">axhqmxqqby</a> [url=http://www.gy08o5g1954944955pu1wvlgkh7k4rsqs.org/]uxhqmxqqby[/url]

ygnrfbtox ([email protected]) 2022-07-12 07:03:03

PokemongoPlanet | Características do algoritmo, para que serve, peças, exemplos <a href="http://www.gvt42i6es03bz0537d60r7zgfd8lp904s.org/">aygnrfbtox</a> ygnrfbtox http://www.gvt42i6es03bz0537d60r7zgfd8lp904s.org/ [url=http://www.gvt42i6es03bz0537d60r7zgfd8lp904s.org/]uygnrfbtox[/url]

xkccgknfpp ([email protected]) 2022-07-10 03:15:57

PokemongoPlanet | Características do algoritmo, para que serve, peças, exemplos [url=http://www.g0079nw6u3jtp23o53nqplye0d5350l9s.org/]uxkccgknfpp[/url] xkccgknfpp http://www.g0079nw6u3jtp23o53nqplye0d5350l9s.org/ <a href="http://www.g0079nw6u3jtp23o53nqplye0d5350l9s.org/">axkccgknfpp</a>