DEV Community

Klleriston Andrade
Klleriston Andrade

Posted on

Algoritmos e Big O notation

Olá a todos, eu sou o Klleriston, estudante de análise e desenvolvimento de sistemas pela FIAP, e estou animado em apresentar a vocês os conceitos de Big O e algoritmos.

Ao longo deste texto, vou explorar conceitos sobre o assunto que são indispensáveis, seja para um desenvolvedor iniciante ou mais experiente.

Algoritmos

Resumidamente, um algoritmo não passa de uma sequência finita de instruções para resolver determinado problema, seja matemático ou computacional.

Podemos encontrar exemplos de algoritmos em muitas atividades do nosso cotidiano. Por exemplo, quando seguimos uma receita, estamos na verdade executando um algoritmo, um processo com passos determinados que nos leva a um resultado delicioso: um bolo, por exemplo.

Big O

Big O é uma notação para saber o quão eficaz é um algoritmo em relação ao espaço e tempo. Em poucas palavras, pode-se dizer que é uma forma de classificar o quanto aquele determinado algoritmo é escalável. Podemos categorizar o Big O em 6 níveis de complexidade:

  • O(n) Complexidade linear

  • O(log n) Complexidade logarítmica

  • O(1) Complexidade constante

  • O(n log n) Complexidade log-linear

  • O(n^2): Complexidade quadrática

  • O(2^n): Complexidade exponencial

Não irei entrar a fundo neste artigo sobre exemplos e definições sobre cada tipo de complexidade. Caso tenham interesse, eu recomendo o livro 'Entendendo algoritmos - Aditya Y. Bhargava' ou o vídeo do 'Lucas Montano "Big O Notation: O Pesadelo do Programador Iniciante"'. Ambos foram essenciais para o meu entendimento sobre o tema.

Conclusão

Bom, neste artigo eu optei por trazer um conteúdo breve e resumido sobre um assunto que estou estudando agora. Gostaria que este artigo tenha despertado o interesse em algoritmos e na notação Big O.

Como já disse antes, eu fortemente recomendo o livro 'Entendendo algoritmos - Aditya Y. Bhargava' e o vídeo do Lucas Montano 'Big O Notation: O Pesadelo do Programador Iniciante' para aprofundar seu conhecimento.

Se sentirem dificuldade em algo relacionado ao tema, ou se quiserem deixar um feedback e discutir mais sobre o assunto, sintam-se à vontade para deixar um comentário ou me chamar no Linkedin. Estou ansioso para continuar essa discussão.

Obrigado pela atenção. Espero que você tenha achado este artigo útil.

Recomendações

Top comments (1)

Collapse
 
tsuyusk profile image
Rafael Sant'Ana

Poxa, muito massa! Isso de complexidade da big O notation é muito interessante, normalmente as pessoas focam na quantidade de operações, mas também é muito legal dar uma olhada em complexidade de espaço, vai te agregar muito (: