Big O Notation: O Pesadelo do Programador Iniciante
HTML-код
- Опубликовано: 12 сен 2024
- ✅ 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-pr...
✅ 𝗢𝗦 𝗠𝗘𝗟𝗛𝗢𝗥𝗘𝗦 𝗩𝗜𝗗𝗘𝗢𝗦 𝗗𝗢 𝗖𝗔𝗡𝗔𝗟
▸ 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
nada melhor que comer lucas montano enquanto assisto almoçando
Tu tá comendo Lucas montano???? Lá ele 😮
@@Diegoreecoba lá ele nada. quem não?
🤔
@@Diegoreecoba 😂😂😂😂😂😂😂😂
@@hideki0000 😮 eu gostuuuuummm
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.
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!
Queremos mais vídeos sobre algoritmos!
Real!
Up!
Up
É 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.
🚨 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
Cara, FINALMENTE um vídeo que me fez entender isso de verdade. Thanks!
senhor lucas, tu ensina muito bem, sério, parabéns!
valeuuu!
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.
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
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 🙏
Muito bom esse livro !!
Livro com uma linguagem muito bacana mesmo! Foi minha primeira leitura desse ano! Linka muito com o vídeo e recomendo demais também!
Exatamente, eu estava lendo também e vi que o Lucas Montana postou esse vídeo e ajudou mais ainda a compreensão.
Vim fazer uma revisão rápida para prova e acabou ganhando uma seguidora! Você é muito didático parabéns.
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.
Grafos é MUITO importante.
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.
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.
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...
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.
Lucas explicou melhor que o meu professor da minha faculdade ks
98% dos assuntos da faculdade encontramos professores melhores no youtube kkk
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!
Eu estudei isso a mil anos na faculdade, surpreendentemente ainda me lembro de boa parte
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.
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!
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!
Mais vídeos sobre conteúdo tech de verdade! 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!!
Sou mais do que iniciante, ainda estou começando a aprender programação, gosto do teu canal.
Perfeito Lucas obrigado pela explicação, com certeza um dos melhores videos sobre o assunto em pt-BR.
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.
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!
Obrigado pelos seus conhecimentos compartilhados Big Montan0
Cara muito obrigado pelo video, estou estudando sobre estrutura de dados e esclareceu muito sobre o Big O Notation.
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
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 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
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.
Que video incrível, tua didática é sensacional, parabéns! Traz mais conteúdo assim
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!!
Muito bom parabéns, gostei muito do conteúdo achei muito didático
Lucas, obrigado por explicar o tema, se possivel outros temas para melhorar a base, grato.
Big O é o pesadelo de quem não quer estudar o que trás o pão pra mesa. Compilou? Rodou? Ta baum
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
Lucas faz uma playlist sobre algoritmos
Uma das Matérias que mais amo da Computação.
AMEI O VIDEO, MAIS NESSE ESTILO POR FAVOR. MUITO TOOOP E DIFERENCIAL!
uso arvore binaria para extrair attributes dos xml e values para transformar em json.
Impressionante no começo eu não tava entendendo nada no final eu tava igual ao começo 😢
eu jurava que for de for era o^2 e não o2, mas faz bastante sentido considerando que vai desconsiderar as constantes
A tarde toda quebrando a minha cabeça
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
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.
Claro, foi uma abordagem mais "historico-contextual" e BEEEEM introdutória, mas com certeza foi um divisor de águas.
A minha pergunta não tem nada haver com o vídeo.
Então Lucas, me diz oq você realmente pensa sobre o mercado atual. Ainda tem espaço pra estudantes? É possível entrar como júnior ainda? Principalmente home office, pra quem mora em cidades que não tem vagas pra desenvolvimento? Qual você acha que é a maior dificuldade pra quem está começando na área agora e qual é o melhor maneira de se aprender sobre o mercado e oq está em alta?
São várias coisas mas eu agradeceria muito uma resposta sua
Não sou o Lucas mano, mas tem sim vagas para junior (não é como se a profissão fosse acabar), a maioria das vagas são remotas, e para ver o que está em alta no mercado procure pelas vagas e o que elas estão exigindo.
@@marcosalves9853 obrigado pela resposta, eu tenho essa dúvida pois tenho visto muita gente reclamar que aplica pra mais de 100 vagas e não consegue de jeito nenhum entrar no mercado de trabalho. Isso me faz questionar um pouco se ainda vale a pena investir anos na área
Assiste o video do Fabio Akita "a bolha de startups estourou ?" Entao aproveita, na verdade a melhor hora pra estudar é agora daqui alguns anos quando o mercado voltar a subir você já estará pronto para o mercado
Aguardo ansiosamente o Lucas Desmontano.
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
Traga mais desse tipo de conteudo! Muito bom
Muito bom. Parabéns pelo conteúdo !!
O conceito caiu como uma luva o entendimento, agora é só decorar e treinar
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
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...
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
@@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.
Vídeo que todo universitário deveria assistir pra se preparar para o mundo!
O Brasil é uma grande árvore binária.
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.
O microfone é tão bom que o meio volume é equivalente ao volume máximo em outros canais, rs.
Obrigado pelo conteúdo !
MT bom , vou assistir umas 20x kkkk estudei nesse semestre
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
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
Muito interessante
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
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....
O tempo do like me pegou ahahah
Árvore binária/busca binária seria o mesmo que o método [MERGE SORT]?
Nada melhor que come o Lucas montano enquanto assisto ao almoço
CS 50 week3. Exatamente onde estou há 2 semanas 😂
Muito bom, só uma observação: println é O(N) e não O(1)
Eu preciso revisar a matéria que fala disso na faculdade.
Temas assim é interessante.
Mais vídeos sobre Algoritmos por favor
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?!
Vídeo sensacional
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
Vídeo absurdo... bem demais
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!)?
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! ;)
Que video brabo
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
já tem no canal, video sobre o algoritmo em python mais performatico
Eu não entendi nada, tentei mas não consegui. Bem provável que isso tenha acontecido pq comecei a estudar programação a 2 meses, mas ainda é paia, depois volto aqui e tento entender novamente
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.
a sara já tinha me alertado sobre esse meu problema hehe não esquenta
Me fez lembrar as provas da faculdade que o professor davas um trecho de codigo e pergunta qual era o BIG O.
esse é o lucas montano do canal lucas montano ?
Dúvida, no exemplo da matriz, não seria O(n^2)? Já que temos dois for/loop aninhados.
se for uma matriz quadrada sim, do contrário seria O(n*m) como disse, e se tu souber já o tamanho da matriz O(n) onde n é tamanho, mas eu aconselho responder O(n*m)…
@@LucasMontano Saquei Lucas, valeu pela reposta.
Quando entra nos algoritmos de busca e ordenação que o Big O fica doido hahaha
Que vídeo bom !!
Good video
Glad you enjoyed
atualizando os likes e comments
Matéria estrutura de dados de sistema de informação, saudades
Alguem consegue me explicar a parte do loop dentro do outro? Pra mim isso seria um O(n^2), nao?
Nutritivo
Eu já tendo estudado sobre e assistindo mesmo assim kkkkk