Algoritmo: características, para que serve, partes, exemplos - Ciência - 2023
science
Contente
- Características de um algoritmo
- Clareza e precisão
- Entradas bem definidas
- Saídas bem definidas
- Finitude
- Factível
- Independência de linguagem
- Programas eficientes
- Para que serve um algoritmo?
- Compressão de arquivo
- Criptografia de dados
- Como funciona um algoritmo?
- Caso de exemplo
- Algoritmo me liga
- Algoritmo de táxi
- Algoritmo de barramento
- Algoritmo alugar um veículo
- Partes de um algoritmo
- Aquisição de dados de entrada
- Cálculo
- Seleção
- Iteração
- Relatório de resultados ou saída
- Tipos de algoritmos
- Algoritmo recursivo
- Algoritmo de divisão e conquista
- Algoritmo de programação dinâmica
- Algoritmo de força bruta
- Algoritmo de fallback
- Exemplos de algoritmos
- Algoritmo recursivo
- Algoritmo de programação dinâmica
- Algoritmo de retrocesso
- Vários exemplos
- Referências
UMA algoritmo é um conjunto de instruções destinadas a realizar uma tarefa específica. Em outras palavras, é 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, em que 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.
Características de um algoritmo
Clareza e precisão
O algoritmo deve ser claro e inequívoco. Cada uma de suas etapas ou ações deve ser definida com precisão, rigorosamente claro em todos os aspectos e deve ter inequivocamente apenas um significado.
Entradas bem definidas
Um algoritmo tem zero ou mais entradas, retiradas de um conjunto específico de objetos. Se o algoritmo indicar que 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 laços infinitos ou semelhantes.
Factível
O algoritmo deve ser inteligente e simples, para 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 ainda assim o resultado é sempre o mesmo, conforme o esperado.
Programas eficientes
Sempre há maneiras diferentes de realizar uma operação específica em um programa. Portanto, os programadores procuram criar os algoritmos mais eficientes possíveis.
Com o uso de algoritmos altamente eficientes, pode-se garantir que os programas rodem na maior velocidade, utilizando o 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 se conhece uma nova versão de uma aplicação com melhor desempenho, 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. Em outras palavras, 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 especificamente ajustados e otimizados para os tipos de arquivo 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 usar menos espaço em disco, eles são armazenados de forma que outros programas não possam 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ê deve dizer ao computador, passo a passo, o que você deseja fazer.
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 o fará, através do algoritmo, sendo a técnica básica utilizada para realizar o trabalho.
Caso de exemplo
Digamos que você tenha um amigo que chega no aeroporto e precisa ir do aeroporto para a nossa casa. Estes são quatro algoritmos diferentes que podem ser fornecidos para resolver esta situação:
Algoritmo me liga
- Quando o avião chegar, ligue para o meu celular.
- Encontre-me fora da área de retirada de bagagem.
Algoritmo de táxi
- Vá para o ponto de táxi.
- Pegue um táxi.
- Dê meu endereço ao motorista.
Algoritmo de barramento
- Saindo do aeroporto, pegue o ônibus número 70.
- Quando você chegar à Calle Principal, pegue o ônibus 14.
- Desça na Rua Elmo.
- Ande dois quarteirões ao norte até minha casa.
Algoritmo alugar um veículo
- Pegue um serviço de transfer até o local onde alugam os carros.
- Alugue 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 alguns 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 ser capaz de executar um conjunto de instruções repetidamente, 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 determinados recursos para ser capaz de informar ao usuário os resultados que calculou ou para 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 resolver 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 então as duas partes para produzir a solução final do problema.
Por exemplo, esses algoritmos podem 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, ele será removido e retrocederá para encontrar outra solução.
Ou seja, esse algoritmo resolve um subproblema, mas se 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 retrocesso
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 o diagnóstico do HIV.
- 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.
- As receitas, como as 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.
- Os aplicativos para smartphones são simplesmente algoritmos.
- A maioria das transações financeiras são realizadas usando algoritmos.
- Cada vez que uma coluna é ordenada em uma planilha, algoritmos intervêm.
Referências
- Lee Rainie (2017). Dependente de código: Prós e Contras da Idade do Algoritmo. Pew Research Center. Retirado de: pewresearch.org.
- Termos técnicos (2020). Algoritmo. Retirado de: techterms.com.
- Britannica (2020). Algoritmo. Retirado de: britannica.com.
- Educba (2020). Tipos de algoritmos. Retirado de: educba.com.
- How to Geek (2016). O que são algoritmos de computador e como funcionam? Retirado de: howtogeek.com.
- Como funciona o material (2020). O que é um algoritmo de computador? Retirado de: computer.howstuffworks.com.