Busca Linear em Listas | Como encontrar Elemento em uma Lista com Python | Estruturas de Dados #2

Поделиться
HTML-код
  • Опубликовано: 4 окт 2024
  • No vídeo anterior, aprendemos o que é e como funciona uma lista linear em alocação sequencial e entendemos que as listas "padrão" da linguagem Python, por mais simples que sejam, são uma forma de lista linear em alocação sequencial. Neste vídeo, implementamos um algoritmo de busca linear para encontrar elementos de uma maneira eficiente neste tipo de lista.
    ▶️ Se você não tem experiência com Python, mas gostaria de aprender a programar e desenvolver uma base sólida de programação usando esta linguagem, confira o nosso curso Python do Jeito Certo: vai.pgdinamica...
    A busca linear é uma das ideias mais básicas que você pode ter para encontrar um elemento em uma lista ou responder que ele não está presente. A ideia consiste em iterar sobre a lista, percorrendo-a a partir do seu primeiro elemento e avançando sempre uma unidade em direção ao seu sucessor. Desta forma, podemos comparar a posição atual com o elemento que procuramos. Eventualmente encontraremos a primeira ocorrência deste elemento na lista ou chegaremos ao final da lista sem encontrá-lo, caso em que retornamos uma valor especial para indicar que o elemento não está presente na lista.
    Analisamos a complexidade do algoritmo busca linear e ao final discutimos sobre o funcionamento de um algoritmo de busca mais eficiente, mas que só pode ser usado quando atingimos certos requisitos: a busca binária! Aprenda sobre a busca binária neste vídeo: • Como implementar BUSCA...
    ⚠️ Python Café agora é Programação Dinâmica! :D
    ▶️ Acompanhe o curso de estrutura de dados nesta playlist: • Estrutura de Dados
    ▶️ Confira também a playlist sobre Análise e Projeto de Algoritmos: • Análise e Projeto de A...
    - Código do vídeo: github.com/pyt...
    📚 Livros de Algoritmos e Estruturas de Dados: amzn.to/3d5wK4m
    📚 Livros recomendados de Data Science: amzn.to/2XZyxUr
    🎥 SetUp - Equipamentos: amzn.to/37Cg3N2
    🟣 Canal na Twitch para lives: / pgdinamica
    🟦 Canal do Telegram para receber os vídeos: t.me/joinchat/...
    ✉️ E-mails:
    - Propostas comerciais: pgdinamica@brunch.ag
    - Demais assuntos: contato@programacaodinamica.com.br
    👩🏾‍💻👨🏾‍💻 Confira mais conteúdo em nosso blog: blog.programac...
    🔥 Faça parte da comunidade gratuita Programação Mais Dinâmica: bit.ly/pgsparkle (baixe o app e entre na comunidade)
    📸 Nos siga no Instagram: / pgdinamica
    📸 @kizzy_terra @hallpaz
    🐦 Nos siga no Twitter: / pgdinamica
    🐦 @kizzy_terra @hallpaz
    Curta a Programação Dinâmica no facebook: pgdinamica
    Nosso repositório no Github: github.com/programacaodinamica
    Confira o nosso Medium: medium.com/programacaodinamica
    Confira os artigos no Python Café: pythoncafe.com.br
    🥰 Se você gosta do nosso trabalho e acha relevante a nossa atuação no RUclips, considere nos apoiar se tornando membro do canal: www.youtube.co...

Комментарии •

  • @DavidKujo
    @DavidKujo 3 года назад +13

    Melhor playlist de estrutura de dados do youtube!

  • @gabrielapaulinideutner3180
    @gabrielapaulinideutner3180 2 месяца назад +1

    estou amando rever estrutura de dados pela sua playlist!

  • @bisturiafiado1107
    @bisturiafiado1107 4 года назад +9

    Meu Deus excelente, Parabéns!!!!

  • @BrunaGabriela-n9y
    @BrunaGabriela-n9y 8 месяцев назад

    Única pessoa que me fez entender esse assunto, parabéns cara muito bom!!!

  • @EduardoHunhoff
    @EduardoHunhoff 5 месяцев назад

    Tu é fera, parabéns

  • @mathauscm_
    @mathauscm_ 11 месяцев назад

    Suas aulas estão melhores que da minha faculdade, parabéns pelo conteúdo!

  • @victordesouzacampos3134
    @victordesouzacampos3134 2 года назад +1

    Aula Incrível, parabéns! Estou aprendendo muito

  • @namelessman346
    @namelessman346 4 года назад

    Olá.
    Eu vi esses métodos de busca na faculdade , mas nunca vi muita serventia neles (na prática). Antes eu tinha feito um algoritmo muito parecido com este mostrado ai no vídeo. Agora, tudo se juntou na minha mente, a teoria vista na faculdade e o algoritmo que eu tinha feito; foram ligados através deste vídeo que você fez. Muito obrigado. Já me inscrevi.
    Eu estou aprendendo Python. Obrigado de novo.

  • @emanoelinacio9178
    @emanoelinacio9178 3 года назад +1

    Excelentes explicações!!!
    Eu uso a linguagem C, mas mesmo assim consigo acompanhar tranquilamente.

    • @pgdinamica
      @pgdinamica  3 года назад +1

      Essa é a ideia! Sinal de que compreendeu os conceitos 😉

  • @HectorMartinez-xo6rz
    @HectorMartinez-xo6rz 2 года назад +1

    Que aula incrível, parabéns pelo trabalho!

    • @pgdinamica
      @pgdinamica  2 года назад +1

      Muito obrigado 🙌🏾

  • @victorpinasarnault9135
    @victorpinasarnault9135 Год назад

    Tive essa aula ontem, não havia entendido nada.
    O seu vídeo explicou direitinho. O meu código foi em Java, mas consigo entender em Python direitinho.

    • @pgdinamica
      @pgdinamica  Год назад

      Entender o algoritmo independentemente da linguagem é um sinal de que está na direção certa. Bons estudos!

  • @andrefigueira3857
    @andrefigueira3857 Год назад

    muito bom mano

  • @PatriciaSantos-mn9ef
    @PatriciaSantos-mn9ef Год назад

    Muito boom, obrigada !!!

  • @rodrigomatos7686
    @rodrigomatos7686 5 лет назад +3

    Muito bom, só queria adicionar que o log n está na base 2, que é o padrão na computação (eu achava que o padrão sempre era 10, daí estranhei). Apesar de, nesse caso, a base não vai alterar a notação Big O, visto que a base é uma constante.

  • @vagnercpa
    @vagnercpa 3 года назад

    Muito boa a aula!!! parabéns pelo trabalho...

    • @pgdinamica
      @pgdinamica  3 года назад

      Muito obrigado! 😁 bons estudos!

  • @progbackend
    @progbackend 5 месяцев назад

    Todo mundo fala em simplificar as coisas, acho que todo vídeo(como na maioria iniciantes buscam) deveria vir com um algoritmo assim como nesse caso
    Busca(lista, valor)
    'for' cada item 'na' lista
    'if' item == valor
    retorna posição do index
    retorna -1
    Aí ficaria melhor para os preguiçosos que não querem ler a documentação haha

  • @sidneyw.mathiasdeoliveira8621
    @sidneyw.mathiasdeoliveira8621 2 года назад

    Tuas aulas são as melhores em português, Hallison, parabéns, mano.
    Como vc faria pra verificar se um conjunto ordenado de elementos se encontra numa lista? Por exemplo: "lista = ['Red', 'Red', 'Blue']", e o computador deve identificar se ela contém os elementos 'Red', 'Blue', nessa ordem. Já pesquisei bastante e não acho uma solução

  • @cirodarocha3859
    @cirodarocha3859 3 года назад

    muito bom.

  • @raniel0511
    @raniel0511 3 года назад +1

    Assistido✔️
    Hallisson mas e se eu tenho uma lista que não está ordenada vou gastar mais recursos computacionais pra ordenar ela primeiro e depois fazer busca binária ou se eu pegar ela desornada e fazer busca linear?

    • @pgdinamica
      @pgdinamica  3 года назад +1

      Ótima pergunta! Para fazer 1 vez só, você gasta menos na busca linear. Mas se a aplicação depende de fazer muitas buscas, vale a pena ordenar primeiro e fazer as buscas depois. Uma forma de manter os dados sempre “ordenados” é usar uma árvore de busca para armazena-los.

  • @moacircardoso9203
    @moacircardoso9203 4 месяца назад

    Não consegui, mas usei o "if(palavra in texto[i]):".
    Vou rever tantas vezes quanto nescessário até entender . Assim que faço.

  • @PauloHenrique-cp4li
    @PauloHenrique-cp4li Год назад

    Sabem aquela representação bem cartunística de quando um personagem tem alguma ideia? que 'pinga' uma lâmpada acesa bem em cima da cabeça dele? foi exatamente como eu me senti vendo esse vídeo!
    💡
    😲

  • @andretaenia
    @andretaenia Год назад

    Fala galega!

  • @raphaelleal8695
    @raphaelleal8695 Год назад

    Olá meu amigo, eu tenho uma duvida, eu consigo fazer uma busca linear sem usar função ?

    • @pgdinamica
      @pgdinamica  Год назад

      Consegue. Só não faz sentido para muitos casos. Se você não compartimentar o seu código na forma de uma função, não tem como reutilizá-lo com parâmetros diferentes (ex: aplicar em novas listas), então você teria um código que faz uma busca numa lista específica.

  • @fredericoapuleio9583
    @fredericoapuleio9583 4 года назад

    Excelente vídeo. Achei muito interessante. Só que eu fiquei com uma dúvida no entanto: essa busca binária é realizada como se tivermos a nossa lista com dados de tipos diferentes, tal como foi citado no próprio vídeo que o Python permite?

    • @pgdinamica
      @pgdinamica  4 года назад +3

      A referência a tipos diferentes no vídeo é para o caso em que esses elementos podem ser comparados entre si. Por exemplo, inteiros e floats podem ser comparados entre si, portanto a lista poderia ser com esses números. Strings também podem ser comparadas entre si, então você poderia ter uma lista só com strings, mas não poderia misturar um inteiro, por exemplo, na lista. Você poderia construir um tipo de dado próprio escrevendo uma classe, por exemplo o tipo “Vídeo”; caberia a você definir como uma vídeo se compara com outro: é menor se a duração for menor? Ou se a data de criação for mais antiga? Ou se o tamanho do arquivo for menor?
      Se você puder comparar os tipos, pode ordená-los e encontrá-los com busca binária.

  • @emanoelinacio9178
    @emanoelinacio9178 3 года назад

    No caso de uma lista cujos elementos não fossem números, como faríamos pra ordenar?

    • @pgdinamica
      @pgdinamica  3 года назад +1

      Não muda nada. O que você precisa é definir a operação "

  • @SrNeper
    @SrNeper 3 года назад

    muito bom. Tem explicação sobre arvore binaria tbm?
    obs. acabei de descobrir o canal xD

    • @pgdinamica
      @pgdinamica  3 года назад +1

      Sim, tem vários vídeos de árvores. Aqui está a playlist completa: ruclips.net/p/PL5TJqBvpXQv5Bb71AE5Cd_kB5rNsfU4Cp

  • @pauloricardosilva5438
    @pauloricardosilva5438 3 месяца назад

    Qual a IDE usada nesse vídeo?

    • @pgdinamica
      @pgdinamica  3 месяца назад

      Editor de texto Atom, que foi descontinuado após a compra do GitHub pela Microsoft.

  • @victorpinasarnault9135
    @victorpinasarnault9135 Год назад

    Like 993º

  • @emvoda6335
    @emvoda6335 Год назад

    tu explica bem mas poderia falar um pouquinho mais devagar, mas da de entender bacana antes de falarem pra usar o speed do video kkkkk