Big O Notation: O Pesadelo do Programador Iniciante
Ғылым және технология
✅ Torne-se membro para obter conteúdo exclusivo:
/ @lucasmontano
🚨 Importante:
Sobre a Matriz
Se a matriz for uma matriz quadrada (NxN) então a complexidade seria O(N^2) e não O(N*M) ou pra simplificar no video falei O(LINHA*COLUNA).
Se o tamanho da matriz quadrada aumentar (ou seja, N aumenta), o tempo de execução crescerá quadráticamente com N. Como falei, é importante comunicar na entrevista se estão falando da quantidade de células ou das dimensões assim como saber se a matriz é quadrada ou não.
Sobre a Árvore Binária
Como falei se a árvore estiver ordenada (balanceada) vamos ter um O(log(n)) mas se ela não estiver ordenada teremos O(n) ou O(h) onde o h é a altura da árvore.
O site para ver todas notações que comentei no video: bigocheatsheet.com
🕹 LANÇAMOS UM JOGO: bit.ly/jogo-programadores
✅ 𝗢𝗦 𝗠𝗘𝗟𝗛𝗢𝗥𝗘𝗦 𝗩𝗜𝗗𝗘𝗢𝗦 𝗗𝗢 𝗖𝗔𝗡𝗔𝗟
▸ Programador Junior quando posso me considerar um?
• Programador Junior qua...
▸ 2023 Programadores
• 2023 Programadores
▸ Minha Carteira de Trabalho como Programador Júnior - Pleno - Senior
• Minha Carteira de Trab...
▸ programador Junior, o que as empresas esperam que tu saiba
• Programador Junior, o ...
▸ Como Aprender a Programar e Como iniciar no mundo da programação?
• Como Aprender a Progra...
▸ Reagindo a Currículo de Desenvolvedores
• Reagindo a Currículo d...
▸ programação é difícil ( poucos conseguem aprender )
• programação é difícil ...
▸ O QUE ESPERAM DE JUNIOR (na Programação)
• O QUE ESPERAM DE JUNIO...
✅ Livros, Cursos, Equipamentos, Discord, Aplicativo Memo ↴
lucasmontano.com
Пікірлер: 177
nada melhor que comer lucas montano enquanto assisto almoçando
@Diegoreecoba
Жыл бұрын
Tu tá comendo Lucas montano???? Lá ele 😮
@hideki0000
Жыл бұрын
@@Diegoreecoba lá ele nada. quem não?
@nothing_to_see_hear
Жыл бұрын
🤔
@Adamlobe
Жыл бұрын
@@Diegoreecoba 😂😂😂😂😂😂😂😂
@diegosouza4839
Жыл бұрын
@@hideki0000 😮 eu gostuuuuummm
Queremos mais vídeos sobre algoritmos!
@historiaeterna22
Жыл бұрын
Real!
@canal_rumo_ao_sucesso
Жыл бұрын
Up!
@caju5421
Жыл бұрын
Up
Sou professor e já dei a disciplina de estrutura de dados e eu sempre bato na tecla que o Big O é o conteúdo mais importante, pois o aluno no mínimo tem que saber os impactos e o comportamento do código que ele está desenvolvendo. Para compreender isso eu faço desafios com dados de alta escala e volume, o aluno é obrigado utilizar as estruturas de dados para conseguir poder resolver o problema de forma rápida.
@andersonbecker9694
Ай бұрын
eu achei bem estranho a materia, fizemos codigos em sala de aula, mas não consigo entender como funciona na prática, pra concluir na prática precisamos entregar um programa testado com 4 formas de fazer, vamos ver oq acontece!
É um bom meio pra levar seu conhecimento em algoritmo para outro nível, porém é apenas uma estatística matemática muito mais comum em meio acadêmico. Em projetos reais é beeem raro ver ela sendo aplicada, e ela tem sido discutida no meio como uma métrica realmente relevante, visto que na pratica os resultados são outros (pesquise por "Big O notation: why it matters, and why it doesn’t"). Então aprenda, vai ser bom para fins de aprendizado e entrevistas, mas n surta com isso.
Cara, FINALMENTE um vídeo que me fez entender isso de verdade. Thanks!
Lembrando para não ficarem somente na notação O, as notações Theta e Ômega são bastantes importantes também, ou seja em análise de limites assintoticos não analisamos somente até o pior caso, que nesse seria o contexto da notação O().
Todos esses conceitos estão descritos no livro Grokking Algorithms (capa com uns ratinhos). Recomendo demais para os iniciantes, uma vez que é um livro super didático e contém até umas ilustrações pra ajudar no entendimento.
Lucas entrou na minha mente agora. Eu tava exatamente estudando sobre complexidade de código, e me chega o Lucas, com um vídeo enviado há 5 mins sobre Big O Notation. O mais brabo apenas
Incrível, esse assunto esta caindo neste período da minha faculdade, eu estava muito confuso e explicou muito bem. Deixou minha mente bem mais clara. Inclusive por conta da faculdade achei que nem era um assunto tão serio, mas agora vou me esforça a buscar mais conhecimento nesse assunto.
Que video incrível, tua didática é sensacional, parabéns! Traz mais conteúdo assim
Obrigado pelo conteúdo !
Mais vídeos sobre conteúdo tech de verdade! Parabéns pelo conteúdo!
Cara muito obrigado pelo video, estou estudando sobre estrutura de dados e esclareceu muito sobre o Big O Notation.
Traga mais desse tipo de conteudo! Muito bom
Perfeito Lucas obrigado pela explicação, com certeza um dos melhores videos sobre o assunto em pt-BR.
AMEI O VIDEO, MAIS NESSE ESTILO POR FAVOR. MUITO TOOOP E DIFERENCIAL!
Muito bom. Parabéns pelo conteúdo !!
Conteúdo excelente meu mano. Se destacando demais dos outros conteúdos que temos na bolha. Fez muito bem em não falar desse assunto da semana no twitter!!
Muito bom parabéns, gostei muito do conteúdo achei muito didático
Obrigado pelos seus conhecimentos compartilhados Big Montan0
Vim fazer uma revisão rápida para prova e acabou ganhando uma seguidora! Você é muito didático parabéns.
Valeu pelo trabalho Lucas, muito bom cara.. comecei a reforçar as bases acerca de algoritmos e estrutura de dados após seus vídeos, tamo junto!!
Sou mais do que iniciante, ainda estou começando a aprender programação, gosto do teu canal.
Lucas, obrigado por explicar o tema, se possivel outros temas para melhorar a base, grato.
Lucas seu vídeo caiu como uma luva... Estou estudando nesse exato momento na faculdade estrutura de dado e estou vendo Big O e árvore binária. Deu pra perceber enquanto assistia o vídeo que estou entendo do assunto. Valeu e quero mais!
Vídeo sensacional
Lucas explicou melhor que o meu professor da minha faculdade ks
@RodrigoAdriano
13 күн бұрын
98% dos assuntos da faculdade encontramos professores melhores no youtube kkk
Que video brabo
MT bom , vou assistir umas 20x kkkk estudei nesse semestre
Caraca, explica bem pra caramba, fui ver pela aula da estácio, já estava endoidando, explicou de forma simples e bem explicado de uma forma que um leigo como eu conseguiu entender a teoria e a pratica, obrigado +1 inscrito
Muito interessante
Lucas te confesso que nunca tinha ouvido falar sobre o tema, mas não é novidade pelo meu nível iniciante no mundo dev, mas curto d+ a sua didática e a maneira com que vc conduz os temas aqui no seu canal... assisto a todos os vídeos, ainda que eu não conheça do assunto, assim forço o meu cérebro a se acostumar com as informações!!! muito obrigado...
Mano nunca ouvi falar em BIG O e minha cabeça bugou um pouco e quando perguntou sobre arvore binaria? Fiquei 🥲 F. Ainda bem que comentou oq era. Lucas seus conteúdos são wonderful. Sempre assisto os videos apesar de não entender alguns kkk Abraços.
dependendo da formação, possivelmente existem muitos devs no mercado que não conhecem essa notação( eu mesmo não conhecia) até ser surprendido em um processo de seleção. Mas nunca é tarde para aprender, Lucas mandou muito bem na apresentação e recomendo tbm a galera estudar mais sobre grafos junto com esses conceitos de complexidade.
@nicollasalcantara6907
8 ай бұрын
Grafos é MUITO importante.
Que vídeo bom !!
Explicação foda, me jogaram isso no primeiro semestre da faculdade quase sem explicação kkkk, abriu bastante minha mente esse vídeo. Obrigado Lucas Montano do canal Lucas Montano.
Ficou bacana sim Lucas! Entendi mais um pouco sobre o Big O Notation. No dia a dia a gente acaba não pensando em termos e especificações técnicas, só quer que o código seja o mais performático possível e fácil de entender. O que me quebra são essas coisas mais técnicas que não penso enquanto trabalho desenvolvendo meus sistemas, quando preciso passar por elas em matérias da faculdade, por exemplo. Valeu!
Uma das Matérias que mais amo da Computação.
Big O é o pesadelo de quem não quer estudar o que trás o pão pra mesa. Compilou? Rodou? Ta baum
Vídeo absurdo... bem demais
Muito bom o vídeo Lucas, continue trazendo conteúdos como este! A maioria dos devs só estão interessados em ferramentas, coisas que mudam constantemente e são efêmeras (lógico que possuem sua importância). Mas esquecem a importância da Ciência da Computação. Aquilo que é imutável, os conceitos base, e o que realmente importa para se ser um programador com mais qualidade.
eu vi bastante sobre na faculdade de ads, mas essa maneira que tu resumiu me fez entender mto mais do que a cadeira inteira HUAHUAHUSH
Belo trabalho Lucas, gosto bastante do tema, séria ansioso para ver mais assuntos como este aqui. Tentando acrescentar um pouquinho ao vídeo para quem possa ler, o Big O descreve o limite superior do algoritmo, são palavras difíceis mas quer dizer que o Big O não é tão exato, por exemplo se tu tem um algoritmo linear e digo que o o Big O é O(n^2) não esta errado, pois o O(n^2) é um limite superior a 0(n). Para quem tem interesse, pode-se pesquisar por Big O, que ira encontrar outras anotações como Omega e Theta, que assim como o Big O descrevem o comportamento assintótico do algoritmo porém de formas diferentes, O Omega vai ser o limite inferior e o Theta é limite exato que mostrar o comportamento do algoritmo com inputs maiores. Além disso tem mais um tópico importante que não é tão usado, porém Big O é usado para ter uma ideia do uso de recursos de acordo com que o input da tua aplicação cresce, normalmente consideramos recursos sendo somente CPU ou Clocks pois essa dinâmica muda um pouco em multithread, porém o Big também pode ser usado para calcular o uso de memória (RAM) . Enfim, espero não ter cagado a explicação do Lucas e deixado as coisas mais confusas na cabeça de ninguém, e talvez ter sido útil para alguma alma perdida aqui nos comentários.
Vim pra tentar entender BigO e saí com a cabeça explodindo de tanta informação, HAHAHAH Valeu Montano por sempre explicar tudo nos mííííííínimos detalhes, heheheh. Abraço de Porto Alegre-RS. Obs.: estou lendo o livro "Entendendo Algoritmos - Aditya Y. Bhargava", vi o tema e fui procurar por fora.
que video bom, desmistificou o bicho de sete cabeças que eu criei na minha mente sobre esse tema, deu até mais vontade de estudar... mandou muito na explicação!
Vídeo mais do que necessário. Tem muita gente que se diz Dev Sênior que fica no Twitter dizendo que faculdade é inútil mas não sabe o que é uma simples notação big(o), não sabe como fazer a analise de complexidade de um código, conteúdo básico de segundo período em uma das disciplinas mais importantes do curso de Ciência da Computação. É como meu professor sempre diz: "Tudo na computação muda com o tempo, linguagens deixam de existir, tecnologias morrem, até mesmo a programação estruturada, que foi super consolidada até a década de 90 foi perdendo seu espaço com a chegada da programação orientadas a objetos causando grandes mudanças e fazendo com que os programadores precisassem se atualizar. A única coisa que nunca muda é a base matemática da computação e seus fundamentos, quem não tem isso sempre fica pra trás quando grandes mudanças acontecem. " As IAs representam uma futura mudança, eu tomaria cuidado. Quem possui o real conhecimento por tras da computação, sua base matemática e seus fundamentos consegue com mais facilidade se adaptar quando surgem novas tecnologias como muita gente fez muita gente antes do grande boom do Machine Learning. Demorou anos pra que disponibilizassem bibliotecas que permitissem que outros devs "criem" modelos e facilmente treinem com seus dados, mas a área de estudos de machine learning se iniciou em 1950 e já em 1970 surgiu o perceptron, um modelo de rede neural simples que pode ser usado pra aprender a classificar padrões lineares. Quem teve sua base bem fundada conseguiu aprender antes mesmo do grande boom mas somente hoje a grande massa está tendo acesso. Quem tem as bases bem fundadas e entende bem o inglês consegue pegar os diversos conteúdos que existem pra estudar e caso seja necessário migrar de área consegue se adaptar pois já está meio caminho andado, mas quem não tem, vai precisar ficar esperando seu youtuber favorito fazer vídeo.
Temas assim é interessante.
Um detalhe importante sobre a busca binária é que apesar da busca ser muito rápida ela requer que seus dados estejam ordenados o que faz com que o custo de inserção de novos elementos seja maior que em cenários em que tu não precisa manter a estrutura ordenada. No fim cada caso tem que ser analisado individualmente. Baita vídeo!
Tô lendo nesse momento o livro: Entendendo Algoritmos - Um guia ilustrado para programadores e outros curiosos e esse vídeo veio bem a calhar junto com a leitura, gratidão 🙏
@guilhermeaparecido8527
Жыл бұрын
Muito bom esse livro !!
@thalesgomest
Жыл бұрын
Livro com uma linguagem muito bacana mesmo! Foi minha primeira leitura desse ano! Linka muito com o vídeo e recomendo demais também!
@pwcodigo
8 ай бұрын
Exatamente, eu estava lendo também e vi que o Lucas Montana postou esse vídeo e ajudou mais ainda a compreensão.
Eu vendo aqui dps de estudar e testar alguns algoritmos de busca linear e busca binaria.. lendo o livro e aplicando nas linhuagens que estudo(java e js) e feliz da vida pq to aprendendo. Vou ta pronto quando a vaga chegar
Esse vídeo me fez lembrar uma matéria na faculdade chamada complexidade de algoritmo. Nela analisávamos se um trecho do código tinha desempenho bom ou não através da formula matemática. fiz essa matéria em 2010 e até hoje faz todo o sentido rsrs
uso arvore binaria para extrair attributes dos xml e values para transformar em json.
senhor lucas, tu ensina muito bem, sério, parabéns!
@LucasMontano
4 ай бұрын
valeuuu!
O Brasil é uma grande árvore binária.
Vídeo que todo universitário deveria assistir pra se preparar para o mundo!
Lucas faz uma playlist sobre algoritmos
Lucas, eu estava fazendo uma liçao do CS50 justamente sobre isso hj e nao estava entendendo mto bem! Agora sei Tudo! Vlw! By the way 7:02 é "contiver". Eu percebi q vc hesitou ao dizer.
eu jurava que for de for era o^2 e não o2, mas faz bastante sentido considerando que vai desconsiderar as constantes
Aguardo ansiosamente o Lucas Desmontano.
Impressionante no começo eu não tava entendendo nada no final eu tava igual ao começo 😢
Good video
@LucasMontano
8 ай бұрын
Glad you enjoyed
O tempo do like me pegou ahahah
unica vez na vida q precisei usar log. Gosto de usar o big para numero de iteracoes, tempo de execução é relativo a vaaaaarios fatores
O conceito caiu como uma luva o entendimento, agora é só decorar e treinar
Boa! Quando paguei Estrutura de dados na faculdade eu vi isso dai, mas muita coisa eu fui me esquecendo, implementei pouquissimas vezes uma árvore e tal
Boaa
Importante falar o motivo do qual se descarta as complexidades menores do mam algoritmo, eh importante isso pq quando tu joga n ao infinito o o(1) fica bem descartavel, ou entao o(n) o(n^2) quando tu observa o grafico dessa funcao para o limit de n para o infinito, tu percebe que o n é ínfimo comparado ao n2
Ontem chegou aqui o livro Entendo Algoritmos E aparece o video do lucas sobre bigO Achei que so as bigtechs me espionavam Agora sei que sao as bigT e o Lucas Montano
CS 50 week3. Exatamente onde estou há 2 semanas 😂
Nutritivo
Bicho, ainda bem que eu conheci "programação" por meio da matemática/ciencia da computação. Lembro que a primeira coisa que meu mestre me ensinou foi sobre Análise e complexidade algoritmos.
@user-bz3qr2qm7x
8 ай бұрын
Claro, foi uma abordagem mais "historico-contextual" e BEEEEM introdutória, mas com certeza foi um divisor de águas.
Mais vídeos sobre Algoritmos por favor
Quando tu falou das formas de crescimento, na hora me veio a mente as gravuras dos graficos e curvas kkkkkkkkk e olha que sinceramente eu nao me lembro de cabeca as notacoes em relacao aos algoritmos (pq eu nao to aplicando para cenarios que precisa e enfim) ah as b-treeeeees....
Nada melhor que come o Lucas montano enquanto assisto ao almoço
O microfone é tão bom que o meio volume é equivalente ao volume máximo em outros canais, rs.
Meu amigo, eu to iniciando agora na programação e não entendi nada KSKSKKSKSKKSKKS, daqui uns 3 meses eu volto aqui e assisto novamente e tento SKKSKSKKKSKKSKSKKSKSKS
Eu preciso revisar a matéria que fala disso na faculdade.
Quando entra nos algoritmos de busca e ordenação que o Big O fica doido hahaha
🚨 Importante: Sobre a Matriz Se a matriz for uma matriz quadrada (NxN) então a complexidade seria O(N^2) e não O(N*M) ou pra simplificar no video falei O(LINHA*COLUNA). Se o tamanho da matriz quadrada aumentar (ou seja, N aumenta), o tempo de execução crescerá quadráticamente com N. Como falei, é importante comunicar na entrevista se estão falando da quantidade de células ou das dimensões assim como saber se a matriz é quadrada ou não. Sobre a Árvore Binária Como falei se a árvore estiver ordenada (balanceada) vamos ter um O(log(n)) mas se ela não estiver ordenada teremos O(n) ou O(h) onde o h é a altura da árvore. O site para ver todas notações que comentei no video: bigocheatsheet.com
Então resumidamente Big O Notation nada mais é que um conjunto estatísco que visa ilustrar o desempenho da estrutura de dados que a pessoa está desenvolvendo. Obrigado pelas dicas.
atualizando os likes e comments
eu simplesmente trabalhava como programador fazia cerca de 1ano e 6 meses quando resolvi me aprofundar nessas questões não faço idéia como que eu progredi tanto até hoje mal mal entendendo big O notation
Ba Lucas, tu podia fazer um vídeo sobre a frase "Não é como se tu fosse, sei lá, um programador e precisasse saber disso"... quais são os dissos além desse disso? hahahah
8:32 "big old sh*t"
Me fez lembrar as provas da faculdade que o professor davas um trecho de codigo e pergunta qual era o BIG O.
Matéria estrutura de dados de sistema de informação, saudades
Eu já tendo estudado sobre e assistindo mesmo assim kkkkk
Árvore binária/busca binária seria o mesmo que o método [MERGE SORT]?
😀
A árvore binária é uma estrutura de dados onde cada nó pode ter 0, 1 ou 2 filhos, e esta quantidade de filhos equivale ao grau deste nó desta árvore. E cada filho de um nó de uma árvore binária pode ser considerado também como sendo uma árvore binária, de modo propositadamente recursivo! ;)
Lucas Montano Lucas ... A 5ª série que habita em mim, saúda a 5ª que habita em você Muito bom esses vídeo falando sobre algoritmos, já pensou em fazer uma série de vídeo fazendo exemplos de algoritmos e mostrando complexidade de espaço e tempo? Acredito que a maioria dos vídeo que tem isso é uma visão muito voltada para faculdade e muitas vezes só tem pseudo código
@aquijazumcanal9863
Жыл бұрын
já tem no canal, video sobre o algoritmo em python mais performatico
Se eu não estiver enganado. Uma arvore binária é básicamente uma arvore de listas ligadas, onde cada nodo contem alem do dado associado ao nodo, ponteiros para os próximos nodos na arvore, fazendo assim, uma estrutura parecida com uma... arvore, tipo o nodo principal, ou original é como se fosse a raiz, e os outros nodos são galhos, a raiz tem ponteiros para galhos, que por sua vez tem ponteiros para outros galhos, até chegar no final da arvore binária. Eu acho que é isso... assumindo q eu não esteja confundindo com outra estrutura...
@arsnakehert
Жыл бұрын
Ter ponteiros ou listas ligadas entra muito em detalhe de implementação e não conceitual Acho que dá pra definir recursivamente assim: Uma árvore binária é ou: - vazio (e.g. um ponteiro nulo); - ou um nodo contendo um valor de algum tipo, e duas árvores binárias
@costelinha1867
Жыл бұрын
@@arsnakehert Tbm, mas é pq eu tô pegando da memória da minha aula de algoritimos q eu tive, a gente tava usando a linguagem C. Por isso que tava incluindo conceitos como ponteiros e listas ligadas.
Me corrija se eu estiver errado por favor, mas entendi que O de linhaXcoluna ou O número total de quadradinhos, seria a mesma coisa certo?!
Muito bom, só uma observação: println é O(N) e não O(1)
carai, vou voltar a estudar depois desse video
Fala Lucas! Se esse vídeo continuasse com palavras geradas por uma LLM (não é Inteligência artificial e sim um auto complete poderoso) você falaria "big O" na ordem de O(n!)?
Lucas, tava meio bêbado ontem e deixei um comentário que lendo hj ficou rude. A dica e valida, eu tenho esse microfone tbm e ele captura o som muito bem a distância. E quando você agarra ele e fala direto nele o som da minha tv vai lá pra cima. Mas espero que você perdoe o tom do meu comentário de ontem. Curto seus vídeos e torço pelo seu sucesso.
@LucasMontano
Жыл бұрын
a sara já tinha me alertado sobre esse meu problema hehe não esquenta
Alguem consegue me explicar a parte do loop dentro do outro? Pra mim isso seria um O(n^2), nao?
Resumindo, com notação O você consegue ver se o seu algoritmo é bom ou uma bela 💩!! Recomendo o Livro Algoritmos do Cormen da capa vermelha (mas em INGLÊS), há diversos erros na versão em português. Muito bem observado Lucas, hoje faltam programadores que tenham noção disso.
Cormen onipresente, até aqui