Big O Notation (Descubra Agora se Seus Algoritmos São Eficientes) // Dicionário do Programador

Поділитися
Вставка

КОМЕНТАРІ • 112

  • @eduardooliveira8296
    @eduardooliveira8296 2 роки тому +81

    Interessante que o mercado ignora bastante esse tipo de prática (estou a quase 19 anos como DEV, com formação prática e não teórica, e só ouvir falar depois de uma entrevista para uma big tech). Deve ser por isso que no fim você tem muito problema de desempenho e sempre sai aquela máxima: "Nossa, que estranho!" (Principalmente quando você passa lindo por um teste com 10, 20 elementos e quando cai em produção, o negócio vai interagir com milhares ou milhões de itens)

    • @dnl2003
      @dnl2003 2 роки тому +2

      ignora por que nao serve pra nada... mesmo que vc saiba a complexidade, idai? nao vai fazer vc otimizar mais... nao é atoa que o mercado nao usa...

    • @eduardooliveira8296
      @eduardooliveira8296 2 роки тому +14

      @@dnl2003 e é por isso que a maioria dos projetos são tão cheio de bugs, lentos e ineficientes em produção. É sim possível vc melhorar a performance da aplicação depois dessa análise de complexidade.

    • @dnl2003
      @dnl2003 2 роки тому +1

      @@eduardooliveira8296 kkkkkkkkkk.. Claro.. o fato do cara ser um programador ruim tem tudo a ver com big O Notation.. O mercado vai passar adotar por isso... confia...

    • @eduardooliveira8296
      @eduardooliveira8296 2 роки тому +5

      @@dnl2003 vc não entendeu o que falei, mas segue o jogo. ABS e sucesso....

    • @rodreiser
      @rodreiser 2 роки тому +7

      @@dnl2003 serve muito, um algoritmo bem escrito com complexidade baixa e a estrutura de dados certa, faz você economizar bastante dinheiro. Tá aí a diferença de um Dev acima da média. Para entrar numa big tech, a primeira entrevista técnica é sobre isso.

  • @GuilhermeCesarMedeiros
    @GuilhermeCesarMedeiros Рік тому +21

    Estou fazendo algumas entrevistas fora do pais e vejo que principalmente para BigTechs e empresas de fora, diferente do Brasil, eles pedem mais esses conhecimentos básicos que costumamos esquecer após a faculdade do que entendimento de frameworks específicos.

  • @MozartMartins
    @MozartMartins 2 роки тому +9

    Caramba... estou me preparando para as big techs e o assunto que estou eh exatamente este...
    Pensei: vou pesquisar um video...
    E voces me aparecem com um video de hoje... fantastic...

    • @eduardooliveira8296
      @eduardooliveira8296 2 роки тому +1

      Mesma coisa aqui man. Quase 20 anos de desenvolvimento nas costas (com formação prática e nunca teórica) e só ouvi falar disso por conta de uma entrevista.

    • @MozartMartins
      @MozartMartins 2 роки тому +2

      @@eduardooliveira8296 Rapaz, estou lendo o livro Cracking the code interview... ele fala que a gente tem que deminar esse Big O notation.

  • @gantah8908
    @gantah8908 2 роки тому +10

    Comecei a estudar programação de cabeça no começo desse ano. E sem sombra de dúvidas, o Big O me pegou muito agora kkkkkk.
    Gosto muito dos videos de vocês. szz

  • @moniquemarry6109
    @moniquemarry6109 Рік тому +2

    Sensacional! Estou fazendo uma revisão da matéria de '' Estrutura de dados'' da faculdade e vocês são simplesmente perfeitos e didáticos. Já ganharam mais uma inscrita. Fico muito grata por compartilharem os seus conhecimentos!

  • @rotognin
    @rotognin 2 роки тому +5

    Estou estudando exatamente isso na faculdade!
    O que a gente acaba aprendendo na prática aparece para nós em forma de teoria quando estudamos, e aí precisa relembrar dos conceitos matemáticos estudados lá no colegial... que no meu caso já fazem uns 20 anos!
    Muito bacana CDF´s. Abraço!

  • @emersonbninfo
    @emersonbninfo 2 роки тому +19

    Nossa, lembrei das minhas aulas na universidade, se tivesse esse vídeo de vocês seria bem mais fácil aprende a complexidade dos algoritmos. kkkkkk

  • @marcos.botelho
    @marcos.botelho Рік тому +1

    Parabéns pela super aula. Sempre assisto o conteúdo do canal para reforçar e aprender mais a parte teórica da faculdade!

  • @douglasnogueirademelo2345
    @douglasnogueirademelo2345 2 роки тому +5

    Mundo de Beakman! A referência não poderia ser melhor! Parabéns pelo conteúdo de qualidade, bem construído e relevante como sempre

  • @cristianmello8120
    @cristianmello8120 2 роки тому +3

    Na faculdade de Ciencia da Computação tive que montar Pesquisa por Interpolação. Tem caso médio O(log(log n)) que chamamos de Bi-logarítmico.
    Excelente vídeo! Existem truques de redução de complexidade para os O(n²) e O(n³) onde podemos amortizá-los usando computação vetorial (SIMD).
    As CPUs atuais possuem instruções para lidar com isso, além de que as GPUs são dedicadas para amortizar esses algoritmos. A complexidade matematicamente não muda,
    só nos aproveitamos de certa independencia a nivel de dados de determinados algoritmos, como os de computação gráfica que costumam ser paralelizáveis por hardware.

    • @lucasdemouradossantos5211
      @lucasdemouradossantos5211 2 роки тому +1

      Maneiro, estou fazendo Bacharel em TI mas me interesso por Ciência, quero ainda me especializar cair de cabeça nesse mundo de estrutura e tratamento de dados. Na minha faculdade deram só uma comentada sobre Big O e já vim aqui tentar entender um pouco mais :p

  • @gastter
    @gastter Рік тому

    toda dúvida que tenho na minha cambaleante jornada pra me tornar programador eu busco no canal de vocês e até hoje nunca falhou, cês tão top d+

    • @gastter
      @gastter Рік тому

      ok, entendi foi porra nenhuma mas ok, seguirei estudando

  • @FELIPEADOLFOMARCHI
    @FELIPEADOLFOMARCHI Рік тому

    minha faculdade recomendou esse vídeo no material didático, estou bem contente com o conteúdo que passam. Certamente recomendando esse ótimo canal sinto que estou no caminho certo

  • @TheChuckleHutt
    @TheChuckleHutt 2 роки тому +1

    Parabéns pelo programa, cada vez melhor, já na espera do próximo vídeo...

  • @azevedoedison
    @azevedoedison Рік тому +2

    Oi casal, parabéns pelo vídeo. Viu, eu estava fazendo todos os exemplos e achei uma falha num frame do vídeo. No minuto 6:37 você está falando sobre busca binária que tem o tempo logarítmico O(log n) (que está correto) porém na sua legenda foi colocado O(n log n) que naquela escala estaria um passo menos performático e que a busca binária não se encaixa, se possível corrija esse quadradinho roxo.

  • @lucaspegoretti
    @lucaspegoretti 2 роки тому

    Tive essa aula sobre big O hoje de manhã, facilitou muito o entendimento, obrigado

  • @danilocalixto
    @danilocalixto Рік тому

    Nossa! A primeira vez que ouvi falar a respeito de Big O foi em um vídeo do @LucasMontano, mas foi um comentário trivial e satírico sobre saber ou não sobre Big O em uma entrevista para uma Big Tech. Enfim, fiquei como o termo na mente, mas sem fazer ideia do que se tratava. E não muito tarde, me deparo com o assunto na disciplina de Estrutura de Dados na faculdade, ai agora não tive como fugir, e para entender melhor nada como iniciar buscando no "dicionário" e para o nosso caso temos a felicidade de ter este canal, que nos trazendo inúmeros termos com sua didática e humor sensacionais. Obrigado casal dev.

  • @AnderCaporale
    @AnderCaporale 2 роки тому +1

    O vídeo veio no momento certo! To fazendo a cadeira de Complexidade de Algoritmo, já vi Divisão e Conquista (6:50 entendi a referência) e no agr to vendo Algoritmos Gulosos =D

  • @GabrielLopesFerreira
    @GabrielLopesFerreira 2 роки тому +1

    Muito bom o vídeo! Apenas uma correção em 7:10 é dito que o Pesquisa binária no melhor caso é O(n) mas o correto seria O(1) caso o elemento buscado esteja exatamente no meio do array.

  • @guscostarock
    @guscostarock 2 роки тому

    Nossa, que legal a proposta, caiu uma lagrima aqui lembrando da infancia assistindo mundo de Beakman!! fica mais facil de entender esses conceitos com uma explicacao assim, q nos faz sentir em casa!! Obrigado!!

  • @FernandoTakeshiSato
    @FernandoTakeshiSato 2 роки тому +8

    Big O é papo pra "gente grande" 😂
    E mesmo assim, de vez em quando, a gente cai em algumas ciladas...especialmente usando funções padrão da linguagem - é sempre importante entender tudo o que seu código está executando!

    • @juninhovit
      @juninhovit 2 роки тому

      Verdade .. Muitas das vezes temos um problema e para solucionar passamos por varias etapas e em uma delas vai e usa algo pronto ignorando o desempenho pra resolver logo o todos

    • @rotognin
      @rotognin 2 роки тому

      Pois é. Nesse caso vale a curiosidade de ir mais a fundo e ver o que as funções/bibliotecas estão fazendo, e se for o caso vale até reescrever funções de maneira mais adequada ao nosso contexto.

  • @20058able
    @20058able 2 роки тому +1

    nossa parasse que os dois estavam estudando junto comigo e viram minha dificuldade no assunto muito bom

  • @marceloh6206
    @marceloh6206 Рік тому

    Saudades da época em que eu estudava no colégio Eniac, em Guarulhos. Monitores dos laboratórios e professores de programação usavam jaleco

  • @carlosvieiratech
    @carlosvieiratech 2 роки тому +1

    Já deixei minha curtida ai para meus brothers...

  • @ricardogomesdemelo2347
    @ricardogomesdemelo2347 Рік тому

    Muito "lá ele" no vídeo kkkk, obrigado pelo conhecimento. Nota 10

  • @josevictormartinsfigueired5978
    @josevictormartinsfigueired5978 2 роки тому +4

    big fan do mundo de beakman também :D

  • @filipenantes117
    @filipenantes117 2 роки тому +1

    Só falta o Lester! Vcs são excelentes! Abraço!

  • @Seu_Lunga
    @Seu_Lunga 2 роки тому +3

    As canetas nos bolsos são códigos binários? Azul é 0 ou 1?

  • @samilindo1
    @samilindo1 2 роки тому +1

    Quando aprendi memorização, e apliquei no algoritmo de Fibonacci, a diferença no tempo é estúpida. Pequenas alterações no código e uma grande melhora!

  • @Lucs-ku5cb
    @Lucs-ku5cb 2 роки тому +1

    Pesquisei sobre big O a pouquíssimo tempo
    Parece até que eles lêem mentes 😄

  • @sebastiancotta
    @sebastiancotta 2 роки тому

    Excelente explicação, parabéns

  • @twinwalks
    @twinwalks 2 роки тому +1

    Eu entendo bem a teoria, mas a prática é outra história. Sei quando estou com uma complexidade de tempo O(n^2) usando um loop for dentro do outro. O que me falta sao exemplos de como melhorar a performance desse código. Outra coisa que nao entendo: em .NET o Linq facilita muito a leitura do código, mas é bem menos eficiente de que um for loop. Mesmo assim é uma prática extremamente apreciada!

  • @20058able
    @20058able 2 роки тому +1

    fala sobre recursividade também

  • @CanalDoFilipe_
    @CanalDoFilipe_ 2 роки тому +1

    Boa explicação!

  • @EdigleyssonSilva
    @EdigleyssonSilva 2 роки тому

    A sequência certa não seria (n * log n) > n > log n?
    No começo do vídeo ao explicar as categorias ficou (n * log n) como se fosse tempo logarítimico. Mas na verdade isso é logarítimico linear. Isso acontece em Merge-sort por exemplo, que vai dividindo mas na hora de juntar os resultados passa por todos os itens.
    A busca binária no pior caso não seria (log n)? Uma vez que o pior caso tem que dividir o array até o final, para o caso em que o valor buscado não está na lista.
    A busca binária não tem como ser O(n) acredito.
    Muito bacana o vídeo!

  • @juniorbastos562
    @juniorbastos562 2 роки тому

    até q em fim uma parte de PAA..🤗😍

  • @itsgoubie
    @itsgoubie 2 роки тому

    já tinha visto resultados do canal mas esse é o primeiro vídeo que eu assisto. o Lester aparece? 🤣

  • @guilhermegovaski
    @guilhermegovaski 2 роки тому +2

    Estou estudando sobre algoritmos e estou vendo que realmente alguns se sobressaem bastante sobre outros, minha dúvida é a seguinte: As funções das linguagens de programação usam algum algoritmo padrão? por exemplo, quando estou usando um "sort()" do JavaScript para ordenar um array, qual algoritmo está sendo usado por baixo dos panos?

    • @nasalisvagabond9039
      @nasalisvagabond9039 2 роки тому +1

      Se não me engano, o JS utiliza o Insertion Sort para ordenar valores, cuja complexidade no pior caso apresenta complexidade quadrática, isto é, O(n²). Dessa forma ele se torna viável apenas para ordenar entradas com uma massa de dados muito pequenas, pois para ordenar um array de tamanho n = 100, ele levaria em torno de 100² operações (10.000). Para caso de uma massa de dados muito grande, como n = 1000, seria mais viável um algoritmo de complexidade menor, como no caso do Merge Sort, cuja complexidade no pior caso é de O(n log n).
      Se formos comparar os dois algoritmos para n = 1000, teremos:
      Insertion Sort = O(n²) -> 1000² = 1.000.000 operações
      Merge Sort = O(n log n) -> 1000 * log 1000 -> 1000 * 3 = 3000 operações.
      Portanto, veja que para uma massa de dados maior no pior caso, o Merge Sort torna-se mais eficiente do que o Insertion Sort.

  • @jvbitssoft369s2
    @jvbitssoft369s2 2 роки тому

    Sou graduando em Engenharia de Computação, ainda n cheguei nesse assunto, mas isso me lembrou de P vs. NP

  • @GuilhermeHenrique-nm8lj
    @GuilhermeHenrique-nm8lj 2 роки тому

    para ver isso na prática um bom jeito é implementar algoritmo da mochila de força bruta e o da mochila fracionada, com 50 itens de entrada, enquanto o da mochila da resultado em alguns micro segundos, o força bruta leva uns 30 minutos, pq ele é n! e o de mochila fracionada depende de um algoritmo de ordenação q na maioria das linguagens é n log n

  • @lucaspegoretti
    @lucaspegoretti 2 роки тому

    Muito boa a aula , parabéns pelo conteúdo

  • @jordancode
    @jordancode Рік тому +1

    Vídeo bem interessante.

  • @hackintosh9992
    @hackintosh9992 2 роки тому +1

    Oche, achei que vocês usa jaleco porque são cientistas da computação, e faz total sentido.

    • @arleygoleiro22
      @arleygoleiro22 2 роки тому

      Tem uma segunda referência que é tíbio e perônio do castelo tá Tim bum

  • @luiza_rodrigues
    @luiza_rodrigues 9 місяців тому +1

    Tenho 3 dúvidas:
    1) No minuto 6:35 é falado que o tempo é logarítmico (ou seja O(log n)) mas é apresentada na tela o O(n log n). É isso mesmo? Se é isso poderia me explicar por que é assim?
    2) No 7:11 diz que o melhor caso é O(n) e no pior caso, é O(log n). Pelo gráfico mostrado anteriormente, o O(log n) não seria mais eficiente/rápido que o O(n), portanto o melhor caso não seria O(log n) e o pior O(n)?
    3) Por fim, vcs estão usando o O para denotar pior e melhor caso, o ideal não seria usar as outras simbologias como theta?

  • @cleytonalves6324
    @cleytonalves6324 Рік тому

    E no caso do um array no ordenado? Seria mais interessante fazer um "sort" e seguir a lógica proposta ? Isso não aumentaria o grau de complexidade. Depois de ver esse vídeo não consigo mais ver um loop dentro de outro loop sem falar ... Visshhhh! hahahaha!

  • @uedson5935
    @uedson5935 Рік тому

    So um ponto se ele diminui o tempo de de execução a cada iteracao entao o pior caso nao seria o(n) e o melhor o(n log n) ? citado no minuto 7

  • @douglassantesso24
    @douglassantesso24 2 роки тому

    obrigado por compartilhar o conhecimento

  • @kaio-souza
    @kaio-souza Рік тому

    Meu Deus,minha cabeça vai explodiiiii

  • @paulocristo1
    @paulocristo1 2 роки тому

    int main(){
    printf("Hello World");
    return 0;
    } //sempre foi o que mas chorei de legria

  • @GiovanneAfonso
    @GiovanneAfonso Рік тому

    Alguém pode me tirar uma dúvida? Aos 9:20 ele disse que: O(1 + n/2 + n) é igual a O(n), mas eu não entendi como isso é possível?
    Imagina que n é 3
    1 + 3/2 + 3 =
    1 + 1.5 + 3 =
    5.5
    Como O(5.5) pode ser igual a O(3)?
    (Não sou muito bom em matemática, então se meu cálculo tiver errado pf me corrijam)

  • @queirozt
    @queirozt 2 роки тому +2

    Kkkkkk Só agora peguei a referência das canetas...

  • @joaopauloh9443
    @joaopauloh9443 2 роки тому +1

    magnificoooo

  • @caiooliveira5183
    @caiooliveira5183 2 роки тому +1

    Saudades de quando o patrocinador era a Hostgator e o Gabriel fazia a voz daquele jacaré kkkkk

  • @torquatotorquato
    @torquatotorquato Рік тому

    Muito bom!

  • @JoaoFarias07
    @JoaoFarias07 2 роки тому

    Desde que eu comecei a estudar programação, quando eu criava algum código, eu sempre me perguntava se não tinha como reduzir o código, ou fazer de uma forma menos complexa... Kkkkk

  • @arleygoleiro22
    @arleygoleiro22 2 роки тому +2

    Interessante

  • @mariaeduardasilva6202
    @mariaeduardasilva6202 2 роки тому +3

    🎉🎉

  • @jefersonsouza9314
    @jefersonsouza9314 7 місяців тому

    Foi o "Olá Mundo!!!" kkk

  • @swiftlandacademy3193
    @swiftlandacademy3193 2 роки тому

    Top 👏🏻👏🏻👏🏻

  • @toscanoplay
    @toscanoplay Рік тому

    pra que aprender matematica pra programar cade o povo que fala que nao precisa de matematica nem de faculdade pra programar ... eh a galera que nao sabe resolver nenhum algoritimo ...

  • @navigatroncidadesinteligentes

    Começa em 2:00

  • @augustobarreto5301
    @augustobarreto5301 2 роки тому

    O que quer dizer a constante C na definição matemática do BigO? Eu vi forum aleatórios falando que é o tempo médio das operações básicas de cada computador, mas n tenho certeza se é isso não. Se tiverem material de referência eu agradeço muito :)

    • @tiagorafael9872
      @tiagorafael9872 2 роки тому +2

      A constante C é o fator que não varia em relação ao tamanho da entrada do algoritmo. E na minha visão não tem muito haver com o computador e sim com o algoritmo. Vamos supor que você use um algoritmo que O(n²) e eu use um que é O(n) para um problema. Isso significa que o seu faz n² operações e o meu faz n operações. Só que cada operação do seu algoritmo custa 1 real, e cada operação do meu custa 100 reais.
      Ou seja, pra você C = 1 e pra mim C = 100. Se a gente olhar apenas para o C vamos concluir que o seu algoritmo é mais barato e o meu é mais caro. Mas isso só vai ser verdade para n < 100. Se n for 1000, o seu custaria 1000000 e meu custaria 100000, e conforme o tamanho aumenta a diferença entre os custos também aumenta. Sabendo que o tamanho vai crescer, o C pode ser ignorado.

  • @mus.igorfranco
    @mus.igorfranco Рік тому +1

    programadores de verdade usam jaleco ! kkk brincadeira. vcs são incríveis, excelente vídeo.

  • @pidubiu
    @pidubiu 2 роки тому +11

    Caneta Azul = 1
    Caneta Vermelha = 0
    11001101 = CD (hexa)
    Favor ajustar para 11001111 = CF (código fonte)
    é toque foi mal, agora vou voltar pro video
    🤣🤣🤣

  • @DioneBatista
    @DioneBatista 2 роки тому

    7:30 Famoso Código Hadouken kkkkkkkk

  • @danielantonio9891
    @danielantonio9891 2 роки тому +1

    Eu estou estudando isso no momento

  • @joaobraz612
    @joaobraz612 2 роки тому

    Vi esse tema nos conteúdos desse semestre na faculdade 😅

  • @revo4427
    @revo4427 2 роки тому

    opa, queria tirar uma duvida sobre o vscode, o meu em especifico ele fica desfocado do nada, não sei o motivo e não sei como arrumar, se alg puder me ajudar fico grato :)

  • @rafaelfrancisco7246
    @rafaelfrancisco7246 Рік тому

    😂é a hora que agente pensa em trancar a faculdade viu obrigado pela ótima aula

  • @natashalopes1539
    @natashalopes1539 Рік тому

    "Tudo bem até aqui?" Não 😭😭😭

  • @Jeaninhanina-os9wz
    @Jeaninhanina-os9wz Рік тому

    Será que a fórmula do big o;
    Conseguiria calcular um Hacker?

  • @hugolobato4932
    @hugolobato4932 2 роки тому

    tava estudando sobre isso na semana passada kkkkk

  • @matheusnunes7969
    @matheusnunes7969 Рік тому +1

    entendi literalmente nada

  • @fernandocarmo532
    @fernandocarmo532 2 роки тому +2

    Trabalho há 7 anos em T.I. e nunca havia realmente entendido essa notação. Continuo não entendendo.
    XD

  • @Hugo.Digital
    @Hugo.Digital 2 роки тому

    Há alguma técnica pra baixar a complexidade?

  • @LucasFortesa
    @LucasFortesa Рік тому +1

    Nossa! Eu sou muito burro.

  • @willgomes8108
    @willgomes8108 2 роки тому

    Estou na 3a semana de análise e desenvolvimento de Sistemas...me sinto tão perdido não quero ficar de fora dessa ...mas tá osso !...😔

  • @RicardoPereiradeAzevedo
    @RicardoPereiradeAzevedo 2 роки тому

    Algorítimo para preparar um bolo simples: Opção 1: Aplique o algorítimo da receita da vóvó - 30 (trinta) linhas, ou Opção 2: Aplique um algorítimo de 2 (duas) linhas: Compre uma caixa de sorvete, adicione farinha de trigo, mistures tudo e leve ao forno;

  • @fabriiciioo1
    @fabriiciioo1 8 місяців тому

    .

  • @toscanoplay
    @toscanoplay Рік тому

    galera nao sabe nem fazer soma direito aushdaushdauhds

  • @theobserver7217
    @theobserver7217 2 роки тому +1

    Esse bagulho é quase inútil para a maioria dos programadores de hoje. É só não abusar do for e usar as funções q toda linguagem tem que trabalham com o melhor big O de ordenação e busca, além de q os pc de hoje são mais rápidos do que a 20,30 anos atrás. Ser programador hj é facil.

    • @eduardooliveira8296
      @eduardooliveira8296 2 роки тому +1

      Concordo que ser programador hoje é muito mais fácil, mas é por isso que a grande maioria dos projetos novos saem com problemas absurdos de performance quando sobem para a produção.

    • @tiagorafael9872
      @tiagorafael9872 2 роки тому +1

      Ordenação e busca são os menores dos problemas. A gente só aprende eles na faculdade pra entender os conceitos de complexidade. A ordenação é O(n log n), a busca é O(n) se o vetor estiver desordenado e O(log n) se estiver ordenado. Ambos são polinomiais, o inferno é quando o problema é exponencial ou fatorial. As libs de machine learning por exemplo pode levar dias pra executar.

    • @fernandocasare8500
      @fernandocasare8500 2 роки тому +2

      haha vai usar uma linguagem que não tenha um garbage collector ou então escreve uma linha de código que faz com que o GC não limpe sozinho, aí tu vai ver a importância de se ter cuidado com isso
      Lembrando que quem mexe com WEB tem que cuidar com o JS pq o servidor é parrudo, mas nem todo pc de usuário é assim

    • @theobserver7217
      @theobserver7217 2 роки тому

      @@fernandocasare8500 Coletor de lixo não tem nada a ver big O e com o que eu disse. Não viaja.
      A outra parte eu não entendi. Escreva direito.

  • @tas4001
    @tas4001 2 роки тому +1

    Há bom tempo tenho estudado programação e até na faculdade nunca consegui entender essa notação direito e nem nas video aulas aqui na plataforma não tinha visto uma explicação tão bem detalhada e que realmente apresenta o que é, me ajudou bastante. Muito obd, vocês são feras!!!👨‍🎓