Análise de Algoritmos Passo a Passo (Parte 2) | xavecoding

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Esta é a segunda e última parte da nossa aula sobre Análise de Algoritmos. Aprofundaremos os conhecimentos aprendidos na parte 1 (link do vídeo abaixo) resolvendo uma série de exemplos. Este vídeo faz parte da nossa série sobre Algoritmos, cujo link da playlist se encontra logo abaixo.
    Se você é novo no canal, dê aquela moral pra gente e se inscreva no xavecoding :)
    _______________________________________­___________
    📝 Respostas dos Exercícios do Vídeo
    a)
    Melhor Caso: O(1);
    Pior Caso: O(N²)
    b) O(N)
    _______________________________________­___________
    1️⃣ Análise de Algoritmos (Parte 1): • Análise de Algoritmos ...
    💻️ Playlist sobre Algoritmos: • Mergulhando em Algoritmos
    _______________________________________­___________
    📕 Livros que eu recomendo (comprando você ajuda o canal):
    Algoritmos - Teoria e Prática (3ed): amzn.to/3RNiHWn
    Entendendo Algoritmos: amzn.to/3LjPf7Z
    Introduction to Algorithms (4ed): amzn.to/3qUqNkp
    Código limpo (Clean code): amzn.to/3fu5Vh3
    O codificador limpo: amzn.to/3rdICLk
    Arquitetura limpa: amzn.to/3dPpa4m
    _______________________________________­___________

Комментарии • 33

  • @SuelyjaneCosta
    @SuelyjaneCosta 3 дня назад

    Aprendi muito com suas explicações. Obrigada!

  • @jonasjr.
    @jonasjr. 11 месяцев назад +7

    Excelente didática professor! Seus 2 videos ensinaram muito mais do que uma matéria inteira da universidade que estou estudando. Grato pelo tempo e conhecimento compartilhado!

  • @ImPH657
    @ImPH657 2 месяца назад +1

    Obrigado, tenho prova de AEDS II amanhã e meu professor é uma ameba.

  • @RodrigoAdriano
    @RodrigoAdriano 14 дней назад

    Otimo video, só senti falta da explicação de como funciona o O(n Log n)

  • @ivandecleimendes
    @ivandecleimendes Год назад +2

    Sua explicação é ótima entendi várias coisas que fiquei um ano pra entender . Gostaria de vídeos sobre análise de grafos , seria ótimo.
    Parabéns continue produzindo estes vídeos.

  • @GlaedrDK
    @GlaedrDK 9 месяцев назад

    Gostaria de agradecer pela aula, não tive esse conteúdo na faculdade e descobri ele faz alguns meses. Não tenho conhecimento matemático o suficiente então tento descobrir a complexidade pelas dicas e macetes que encontrei na internet e pelo seu vídeo, muito obrigado!

  • @avila_gl
    @avila_gl Год назад +1

    melhor professor de computação do youtube!

    • @xavecoding
      @xavecoding  Год назад +2

      Obrigado, Guilherme 🤖
      Fico muito feliz pelas palavras.
      O canal voltará com vários novos vídeos muito em breve.
      Fique ligado ✌️

  • @carlosfixo5635
    @carlosfixo5635 7 месяцев назад +6

    pq n temos professores assim na faculdade? parece que na faculdade, os professores fazem questão de complicar tudo kkkkkk

  • @FP_AO
    @FP_AO 7 месяцев назад

    aula fantastica! simples, direito e objectivo.

  • @valdanoca8319
    @valdanoca8319 7 месяцев назад

    Muito obrigado pela explicação, você é bom demais!

  • @ederfernandes2065
    @ederfernandes2065 Год назад

    melhor didática, melhor linguagem, melhor prof., estou passando perrengue pra entender essa análise toda de algoritmo, mas agora estou vendo uma luz no túnel com suas aulas, obgdo, abraço!!

    • @xavecoding
      @xavecoding  Год назад

      Obrigado 🤖.
      Fico contente por isso, Eder. Continue firme seus estudos.
      O canal voltará muito em breve com muitos conteúdos sobre algoritmos, desenvolvimento web e ciência de dados.
      Fique ligado ✌️

  • @VanessaLopes-xe8qw
    @VanessaLopes-xe8qw Год назад

    Aula Fantástica! Ótima didática. 👏👏👏👏👏👏👏

  • @pedrojose9833
    @pedrojose9833 Год назад +1

    Top!!

  • @jorgecomparato329
    @jorgecomparato329 Год назад +1

    Muito didatico! Bom trabalho executado mestre!

    • @xavecoding
      @xavecoding  Год назад +1

      Obrigado, Jorge 🤖
      O canal voltará com vários novos vídeos muito em breve.
      Fique ligado ✌️

  • @PauloVitor-pk7bz
    @PauloVitor-pk7bz 6 месяцев назад

    Obrigado pela aula fesor

  • @mandyysz
    @mandyysz 7 месяцев назад

    Obrigada moço ❤

  • @matheusmotta5413
    @matheusmotta5413 Год назад

    Obrigado pela excelente aula

    • @xavecoding
      @xavecoding  Год назад +2

      Obrigado 🤖.
      O canal voltará muito em breve com muitos conteúdos sobre algoritmos, desenvolvimento web e ciência de dados.
      Fique ligado ✌️

  • @araujored1146
    @araujored1146 Год назад

    Gostei muito dessas aulas. Mas eu queria saber uma coisa: A finalidade da análise assintotica dentro da programação... No que isso ajudaria no dia a dia de um programador?

    • @xavecoding
      @xavecoding  Год назад +4

      Oi, Araujo.
      Resposta simples: te ajuda a entender o quão eficiente é um dado algoritmo (em termos de tempo e/ou espaço de memória) para avaliar sua aplicabilidade em dada aplicação ou compará-lo com outros algoritmos para a mesma aplicação.
      Imagine a seguinte situação bem hipotética. Você trabalha numa empresa que desenvolveu um e-commerce. Os usuários podem buscar por determinados produtos, podendo ordenar sua visualização por aqueles com menor preço.
      A solução mais simples para esse problema seria:
      1) O sistema busca todos os produtos relacionados à busca do usuário (e.g., livros de computação)
      2) Ordena os produtos pelo menor preço
      3) Apresenta na tela os resultados encontrados
      Imagina que há milhares de produtos relacionados à busca. Há vários algoritmos de ordenação, sendo que cada um possui uma dada complexidade de tempo. Usar um algoritmo "lento" na etapa (2) pode fazer com que o tempo de resposta para o usuário seja muito demora. Imagine o usuário realizar uma busca e demorar minutos pra retornar a resposta. Consequentemente, é provável que você perdesse o cliente.
      O ideal seria usar o algoritmo mais rápido possível que seja adequado ao seu problema.
      Saber como identificar a complexidade de algoritmos também lhe faz desenvolver algoritmos mais eficientes. Você pode desenvolver diferentes algoritmos com diferentes estruturas de dados que lhe retornarão o mesmo resultado, porém em tempos de execução diferentes. Conforme você vai ganhando experiência como programador, começará a aprender certas técnicas e estruturas mais eficientes para resolver certos problemas corriqueiros. Saber a complexidade de tempo de tais técnicas/algoritmos lhe ajudará a tomar a melhor escolha.

    • @araujored1146
      @araujored1146 Год назад

      @@xavecoding aah sim, isso faz muito sentido mesmo! Obrigado, cara. E sua didática é muito boa, merece mais reconhecimento! Vlw

  • @julianoneves3983
    @julianoneves3983 9 месяцев назад

    exercício:
    letra a) O(n^2)
    letra b) O(n)

  • @jonasfrancomatador1277
    @jonasfrancomatador1277 Год назад

    Errei a O(n²) só porque esqueci de que n*n = n².

  • @k.manjericao1583
    @k.manjericao1583 7 месяцев назад +1

    Não entendi a explicação pq vc disse nlog(n) é igual ou maior que 1, mas para n=1, log(n)=0 e aí nlog(n) seria zero. Fiquei confusa.

    • @juliermearaujo
      @juliermearaujo Месяц назад

      Olá. Faz sentido o que ele mencionou. E sua observação também faz sentido.
      Se você compara o valor de 'n' com o valor de 'nlogn', sendo 'n' valores maiores ou iguais a 1 e menores que 10, O(n) será realmente maior que O(nlogn). Por exemplo:
      - Para n = 5 temos:
      O(n) = 5
      O(nlogn) = 3,49 ~ 3,5
      - Para n = 9 temos:
      O(n) = 9
      O(nlogn) = 8,5
      - Para n = 10 já temos uma igualdade entre O(n) e O(nlogn).
      O(n) = 10
      O(nlogn) = 10
      Então, para qualquer valor de entrada com n > 10, O(nlogn) será maior que O(n). E como estamos falando de análise de pior caso sempre teremos uma quantidade enorme de entradas, o que remeterá a O(nlogn) sendo sempre maior que O(n).
      Sua observação está correta ao perceber que quando n = 1 tem-se O(n) = 1 e O(nlogn) = 0. Como mencionei, isso só ocorre com 'n' sendo valores entre 1 e 9. Com 'n' sendo valores maiores que 10, O(nlogn) sempre será maior que O(n).
      Então, quando o professor fala que em 'nlogn', o 'logn' será >= 1, ele está querendo ressaltar que sempre haverá um fator multiplicativo vinculado ao n (que é o logn). Um hora esse fator multiplicativo vai começar a fazer uma grande diferença. E como já mencionado, essa hora é exatamente quando 'n' passar a ser maior que 10.
      Espero ter ajudado.

  • @meucelularkrl
    @meucelularkrl Год назад +3

    Teremos mais aula sobre análise de algoritmos?

    • @xavecoding
      @xavecoding  Год назад +3

      Teremos!
      O canal voltará muito em breve com muitos conteúdos sobre algoritmos, desenvolvimento web e ciência de dados.
      Fique ligado ✌️

    • @meucelularkrl
      @meucelularkrl Год назад

      @@xavecoding ihaaaa 🤠

    • @luccadioliveira
      @luccadioliveira Год назад +1

      ihaaaa 🤠