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 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.
@@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...
@@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.
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.
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...
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.
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
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!
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!
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
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.
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
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.
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
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.
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!!
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.
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!
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
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.
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?
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?
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.
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)
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!
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!
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!
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
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
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 :)
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.
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 :)
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 🤣🤣🤣
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 ...
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;
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.
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.
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.
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
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!!!👨🎓
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)
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...
@@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.
@@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...
@@dnl2003 vc não entendeu o que falei, mas segue o jogo. ABS e sucesso....
@@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.
No tempo 7:08 segundo. É dito que "no melhor caso teremos um tempo O(n)" mas o correto seria "no melhor caso teremos um tempo O(1)".
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.
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...
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.
@@eduardooliveira8296 Rapaz, estou lendo o livro Cracking the code interview... ele fala que a gente tem que deminar esse Big O notation.
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
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!
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!
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
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
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
Parabéns pela super aula. Sempre assisto o conteúdo do canal para reforçar e aprender mais a parte teórica da faculdade!
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.
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
Parabéns pelo programa, cada vez melhor, já na espera do próximo vídeo...
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.
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
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.
Tive essa aula sobre big O hoje de manhã, facilitou muito o entendimento, obrigado
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!!
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.
nossa parasse que os dois estavam estudando junto comigo e viram minha dificuldade no assunto muito bom
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+
ok, entendi foi porra nenhuma mas ok, seguirei estudando
Já deixei minha curtida ai para meus brothers...
Muito "lá ele" no vídeo kkkk, obrigado pelo conhecimento. Nota 10
big fan do mundo de beakman também :D
Começa em 2:00
fala sobre recursividade também
Só falta o Lester! Vcs são excelentes! Abraço!
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!
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
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.
Pesquisei sobre big O a pouquíssimo tempo
Parece até que eles lêem mentes 😄
Excelente explicação, parabéns
até q em fim uma parte de PAA..🤗😍
Saudades da época em que eu estudava no colégio Eniac, em Guarulhos. Monitores dos laboratórios e professores de programação usavam jaleco
As canetas nos bolsos são códigos binários? Azul é 0 ou 1?
Muito boa a aula , parabéns pelo conteúdo
Saudades de quando o patrocinador era a Hostgator e o Gabriel fazia a voz daquele jacaré kkkkk
Kkkkkk Só agora peguei a referência das canetas...
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?
Oche, achei que vocês usa jaleco porque são cientistas da computação, e faz total sentido.
Tem uma segunda referência que é tíbio e perônio do castelo tá Tim bum
Sou graduando em Engenharia de Computação, ainda n cheguei nesse assunto, mas isso me lembrou de P vs. NP
Então chegou.
Meu Deus,minha cabeça vai explodiiiii
Boa explicação!
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?
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.
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)
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!
obrigado por compartilhar o conhecimento
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!
Vídeo bem interessante.
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
Foi o "Olá Mundo!!!" kkk
Eu estou estudando isso no momento
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!
já tinha visto resultados do canal mas esse é o primeiro vídeo que eu assisto. o Lester aparece? 🤣
magnificoooo
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!
Vi esse tema nos conteúdos desse semestre na faculdade 😅
7:30 Famoso Código Hadouken kkkkkkkk
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
Interessante
Muito bom!
🎉🎉
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
programadores de verdade usam jaleco ! kkk brincadeira. vcs são incríveis, excelente vídeo.
😁😁😁
int main(){
printf("Hello World");
return 0;
} //sempre foi o que mas chorei de legria
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 :)
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.
"Tudo bem até aqui?" Não 😭😭😭
Top 👏🏻👏🏻👏🏻
😂é a hora que agente pensa em trancar a faculdade viu obrigado pela ótima aula
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 :)
tava estudando sobre isso na semana passada kkkkk
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
🤣🤣🤣
Rapaz
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 ...
entendi literalmente nada
Nossa! Eu sou muito burro.
Será que a fórmula do big o;
Conseguiria calcular um Hacker?
Há alguma técnica pra baixar a complexidade?
Há várias.
Trabalho há 7 anos em T.I. e nunca havia realmente entendido essa notação. Continuo não entendendo.
XD
😭😆
.
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 !...😔
galera nao sabe nem fazer soma direito aushdaushdauhds
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;
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.
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.
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.
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
@@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.
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!!!👨🎓