✔ Quer aprender ainda mais comigo? Seja meu aluno por meio da minha formação completa de Engenharia de Dados por um preço super acessível: iuryrosal.dev/cursos. 🙌
Algumas dúvidas Big O, seria o pior caso de "procura" em um array (valor procurado estaria na última posição) ? Omega, seria a busca em um array encontrando o valor procurado na primeira posição ? Theta, seria um "média" dos dois citados ?
Pronto, essa notação assintótica apenas indica para a gente a complexidade de um algoritmos levando em conta os piores casos (pensando no contexto de array, o pior caso seriam arrays gigantes, de tamanho n = 1 milhão, por exemplo). Se eu tenho um algoritmo X e ele é O(n), quer dizer que o crescimento do tempo de execução junto ao crescimento do tamanho do array é linear. Isso sendo um teto, no caso da notação BIG O. As outras notações seguem a mesma pegada, apenas mudando que o OMEGA é um piso (é disso pra cima) e o Theta seria a combinação do BIG 0 e do Theta (tanto por cima como por baixo, teto e piso, ao mesmo tempo). Essas notações não envolvem uma situação em especifico, mas sim uma característica do algoritmo ao executar para entradas de tamanhos distintos.
@@IuryRosal Agora sim Iury, já vi lugares que escrevem f(n) é O(g(n)), traduzindo em termos práticos, o que significaria isso ? muito obrigado mais uma vez.
@@uberdamcavaletti f(n) é a função que descreve o tempo de execução em função da entrada de tamanho n, O é a notação BIG O e g(n) é a função que vai dentro da notação. Exemplo: O(n), quer dizer que g(n) = n. É só questão de representação mesmo.
Agradecido pelo feedback. Já foi postada mais uma aula com questões envolvendo a notação big-O e, em breve, terá mais uma sobre notação theta e omega. A ideia é, num futuro não tão distante, ter algo sobre corretude de algoritmos e teorema mestre, mas esses vídeos ainda estão sendo pensados. =)
Opa Raphael, fico agradecido pelo lembrete. Meio que esse canal do Telegram não gerou tanto resultado como esperava e hoje ele não existe mais... Hoje em dia tem o meu linkedin, instagram e tem o Apoia.se (e Discord) como canais suporte para o projeto. ;)
Olá Makeley. Bem, no geral, análise assintótica envolve mais a teoria de estudarmos os algoritmos olhando apenas para seu tempo de execução e complexidade. Agora puxando para aplicações, no geral, no mundo corporativo, é mais dificil você olhar para isso. Acredito que a aplicação de uso direto seria em um contexto que você precisa ter o algoritmo mais otimizado possível, envolvendo algum aspecto mais financeiro, por exemplo. Tipo o tempo de execução é primordial, sendo uma grande prioridade.
Makeley, quando você está fazendo um programa geralmente você não se preocupa com otimizar o seu programa, mas sim em resolver um problema. Agora depois de feito o seu programa você pode pensar em melhorar a sua solução e esse é o caminho para isso. Como você sabe que o seu programa é ruim ou não? Como você sabe se ele é lento? Agora imagine uma empresa que precisa que o seu programa rode rápido e que o seu código seja o melhor possível. Pronto. E por isso que você precisa entender o conceito para aplicar da melhor forma.
É uma constante que pode assumir qualquer valor natural não nulo para fazer com que a condição seja satisfeita (em resumo). Nos exercicios (que são as partes 2 e 3) podem esclarecer melhor pra você
boa noite1 gostaria conversar com o professor. por favor! quem tiver o contacto do professor, agradecia me enviar. eu sou africano, estudante em portugal
Pronto, a ideia do pior, médio e melhor caso é a forma que você irá interpretar o problema e trabalhar as notações. Normalmente olhamos para o pior caso, que seria o máximo que ele poderia crescer baseado no aumento do tamanho da entrada. Por exemplo, um algoritmo de busca simples e genérico pode ter, no pior caso, O(n), ou seja, no pior dos mundos o algoritmo irá percorrer todo o vetor uma única vez (situação em que um elemento estaria no final do vetor ou não se encontra no vetor e teve que ser verificada todas as posições).
@@IuryRosal Não tinha formulada direito minha pergunta.Mas já tirei a dúvida. Minha dúvida era se cada cenário estivesse ligado a uma notação.↓ DÚVIDA ESCLARECIDA ↓ Melhor Caso ( Ω ): Exprime o menor tempo de execução de um algoritmo para uma entrada de tamanho n. Caso Médio ( θ ): Deve-se obter a média dos tempos de execução de todas as entradas de tamanho n, ou baseado em probabilidade de determinada condição ocorrer. Pior Caso (O): Baseia-se no maior tempo de execução sobre todas as entradas de tamanho n (ordem de grandeza).
Opa, perdão Raimundo por isso. Poderia especificar o que realmente atrapalhou ou se foi algum momento específico do vídeo? Coloco o fundo escuro mais por questão de design e marca de uso, mas sempre tento utilizar cores claras para dar um contraste e melhorar a visualização. Por isso, gostaria de entender um pouco melhor o seu ponto para me atentar em vídeos futuros.
Desconsidera o que disse o colega Raimundo, Iury. O fundo escuro ficou bem visível e não cansou a vista. O uso de mais cores talvez facilite um pouco a estética e entendimento.
"Vai estar utilizando", meu deus, que vício doentio dos brasileiros. Uma suruba de verbos pra dizer o que um verbo ou uma locução verbal resolveria. Tudo isso pq convencionou-se que isso é bonito no boom do telemarketing nos anos 2000. "Estaremos utilizando" ou "utilizaremos", meu amigo. Faz uma análise nessa linguagem aí.
✔ Quer aprender ainda mais comigo? Seja meu aluno por meio da minha formação completa de Engenharia de Dados por um preço super acessível: iuryrosal.dev/cursos. 🙌
que aula foda, parabéns pela didática!
Estou fazendo faculdade de ADS e o vídeo esclareceu muitas dúvidas, obrigado pelo excelente conteúdo!
Fico muito feliz em ajudar! :)
Obrigado Iury.Boa explicação.
Fico muito feliz em ter sido útil!! Esse tipo de feedback é extremamente importante pra mim =D
Super didático você esclareceu minhas dúvidas sobre o assunto muito obrigado!
Fico feliz em ajudar!!
Obrigada pela explicação!
Nada, fico muito feliz em ser útil!
Que aula esclarecedora! Muitíssimo obrigado. Ajudou muito.
Muito obrigado Matheus! Fico feliz em o vídeo ter sido útil, forte abraço!
Cara que excelente explicação. Top demais! Deu até vontade em aprofundar mais nos algoritmos
Olá Fredson, fico muito feliz em ter contribuído de alguma forma. Abraços! :)
Top cara melhor aula sobre assunto.....
Olá Glasser, fico muito feliz pelo conteúdo ter sido útil!! Esse tipo de feedback é muito gratificante e estimula a continuar o projeto!
Que aula top cara, consegui entender fácil o conteudo.
Muito obrigado, fico feliz em ser útil!!! =)
Ótima aula, parabéns pela didática!
Muito obrigado Ricardo, fico feliz em ajduar! =)
Ótima aula, o assunto foi muito bem abordado
Obrigado pela aula🙏🏿
Fico muito feliz em a aula ter agregado José! Forte abraço!
parabens pelo conteudo!
Muito obrigado Ramon, fico muito feliz em agregar! :)
Ótima explicação!
Muito obrigado!!! Esse feedback é muito gratificante! =)
Aula excelente!!!
Muito obrigado! Fico feliz em ter sido útil.
Opa iury consegue mandar o link do Telegram ?
Opa, infelizmente acabei desativando esse canal. Mas pode me acompanhar pelo Linkedin qualquer coisa ;)
Algumas dúvidas
Big O, seria o pior caso de "procura" em um array (valor procurado estaria na última posição) ? Omega, seria a busca em um array encontrando o valor procurado na primeira posição ? Theta, seria um "média" dos dois citados ?
Pronto, essa notação assintótica apenas indica para a gente a complexidade de um algoritmos levando em conta os piores casos (pensando no contexto de array, o pior caso seriam arrays gigantes, de tamanho n = 1 milhão, por exemplo). Se eu tenho um algoritmo X e ele é O(n), quer dizer que o crescimento do tempo de execução junto ao crescimento do tamanho do array é linear. Isso sendo um teto, no caso da notação BIG O. As outras notações seguem a mesma pegada, apenas mudando que o OMEGA é um piso (é disso pra cima) e o Theta seria a combinação do BIG 0 e do Theta (tanto por cima como por baixo, teto e piso, ao mesmo tempo). Essas notações não envolvem uma situação em especifico, mas sim uma característica do algoritmo ao executar para entradas de tamanhos distintos.
@@IuryRosal Agora sim Iury, já vi lugares que escrevem f(n) é O(g(n)), traduzindo em termos práticos, o que significaria isso ? muito obrigado mais uma vez.
@@uberdamcavaletti f(n) é a função que descreve o tempo de execução em função da entrada de tamanho n, O é a notação BIG O e g(n) é a função que vai dentro da notação. Exemplo: O(n), quer dizer que g(n) = n. É só questão de representação mesmo.
muito top a aula, terão mais aulas sobre CANA no futuro?
Agradecido pelo feedback. Já foi postada mais uma aula com questões envolvendo a notação big-O e, em breve, terá mais uma sobre notação theta e omega. A ideia é, num futuro não tão distante, ter algo sobre corretude de algoritmos e teorema mestre, mas esses vídeos ainda estão sendo pensados. =)
Faltou colocar o canal do telegram na descrição.
Opa Raphael, fico agradecido pelo lembrete. Meio que esse canal do Telegram não gerou tanto resultado como esperava e hoje ele não existe mais... Hoje em dia tem o meu linkedin, instagram e tem o Apoia.se (e Discord) como canais suporte para o projeto. ;)
Muito bom os vídeos, uma dúvida Iury.
Muito obrigado Uderdam!
Sou bem iniciante em programação, me perdoem pela ignorância. Qual a aplicabilidade no dia-a-dia por exemplo de um programador?
Olá Makeley. Bem, no geral, análise assintótica envolve mais a teoria de estudarmos os algoritmos olhando apenas para seu tempo de execução e complexidade. Agora puxando para aplicações, no geral, no mundo corporativo, é mais dificil você olhar para isso. Acredito que a aplicação de uso direto seria em um contexto que você precisa ter o algoritmo mais otimizado possível, envolvendo algum aspecto mais financeiro, por exemplo. Tipo o tempo de execução é primordial, sendo uma grande prioridade.
Makeley, quando você está fazendo um programa geralmente você não se preocupa com otimizar o seu programa, mas sim em resolver um problema. Agora depois de feito o seu programa você pode pensar em melhorar a sua solução e esse é o caminho para isso. Como você sabe que o seu programa é ruim ou não? Como você sabe se ele é lento? Agora imagine uma empresa que precisa que o seu programa rode rápido e que o seu código seja o melhor possível. Pronto. E por isso que você precisa entender o conceito para aplicar da melhor forma.
Parabéns pelo vídeo! Você faz faculdade a onde?
Obrigado, fico feliz em o conteúdo agradar! =D Faço Engenharia de Computação na Universidade Federal do Ceará (UFC).
Puts, me perdi no que seria o c no Big O notation. Alguém da um help?
É uma constante que pode assumir qualquer valor natural não nulo para fazer com que a condição seja satisfeita (em resumo). Nos exercicios (que são as partes 2 e 3) podem esclarecer melhor pra você
boa noite1 gostaria conversar com o professor. por favor! quem tiver o contacto do professor, agradecia me enviar. eu sou africano, estudante em portugal
Olá Francisco, você pode me contatar pelo Linkedin. Outros meios de contato você encontra aqui iuryrosal.dev/contato
Man qual é a relação entre as notações com os cenários: PIOR, MÉDIO e MELHOR caso?
Pronto, a ideia do pior, médio e melhor caso é a forma que você irá interpretar o problema e trabalhar as notações. Normalmente olhamos para o pior caso, que seria o máximo que ele poderia crescer baseado no aumento do tamanho da entrada. Por exemplo, um algoritmo de busca simples e genérico pode ter, no pior caso, O(n), ou seja, no pior dos mundos o algoritmo irá percorrer todo o vetor uma única vez (situação em que um elemento estaria no final do vetor ou não se encontra no vetor e teve que ser verificada todas as posições).
@@IuryRosal Valeu, você tem discord? É que estou com algumas dúvidas!
Tenho, mas só para uso pessoal, qualquer coisa pode mandar as dúvidas por aqui ou via linkedln (link na descrição).
@@IuryRosal Não tinha formulada direito minha pergunta.Mas já tirei a dúvida. Minha dúvida era se cada cenário estivesse ligado a uma notação.↓ DÚVIDA ESCLARECIDA ↓
Melhor Caso ( Ω ): Exprime o menor tempo de execução de um algoritmo para uma entrada de tamanho n.
Caso Médio ( θ ): Deve-se obter a média dos tempos de execução de todas as entradas de tamanho n, ou baseado
em probabilidade de determinada condição ocorrer.
Pior Caso (O): Baseia-se no maior tempo de execução sobre todas as entradas de tamanho n (ordem de grandeza).
Obrigado por compartilhar! =D
O fundo ficou muito escuro
Opa, perdão Raimundo por isso. Poderia especificar o que realmente atrapalhou ou se foi algum momento específico do vídeo? Coloco o fundo escuro mais por questão de design e marca de uso, mas sempre tento utilizar cores claras para dar um contraste e melhorar a visualização. Por isso, gostaria de entender um pouco melhor o seu ponto para me atentar em vídeos futuros.
Desconsidera o que disse o colega Raimundo, Iury. O fundo escuro ficou bem visível e não cansou a vista. O uso de mais cores talvez facilite um pouco a estética e entendimento.
"Vai estar utilizando", meu deus, que vício doentio dos brasileiros. Uma suruba de verbos pra dizer o que um verbo ou uma locução verbal resolveria. Tudo isso pq convencionou-se que isso é bonito no boom do telemarketing nos anos 2000. "Estaremos utilizando" ou "utilizaremos", meu amigo. Faz uma análise nessa linguagem aí.
Ciente.
chatisse