Algoritmo SELECTION SORT | Algoritmos de Ordenação | Algoritmos #3

Поделиться
HTML-код
  • Опубликовано: 5 ноя 2024

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

  • @TheSantullo
    @TheSantullo 2 года назад +19

    Só tenho a agradecer a esse canal que achei por acaso procurando uma dúvida da faculdade, em que algumas das aulas são ead com pouco conteúdo, parabéns pelo trabalho e pela ótima explicação, já virei inscrito!

  • @Luchkasz
    @Luchkasz 4 года назад +23

    Tudo que eu precisava, uma playlist dahora sobre algoritmos de ordenação

  • @criandoEdesenvolvendo
    @criandoEdesenvolvendo 6 месяцев назад +7

    2024. A maneira que voce explicou o algoritmo foi espetacular. Depois que caiu no Python, aí infelizmente precisei parar porque preciso implementar em C puro. Parabéns pelo conteúdo

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

      Obrigado! Quanto ao Python, eu sugiro pensar neste linguagem como uma forma de pseudo-código (escolhi ela com isso em mente). Os melhores livros de algoritmos na minha opinião (PapadiMitriou amzn.to/3wapAf0 e Cormen amzn.to/4dqPtrM) não se apegam a nenhuma linguagem específica e aprensentam pseudo-códigos.
      De todo modo, acredito que o teste que valida se você realmente entendeu o algoritmo é a capacidade de implementá-lo em qualquer linguagem de programação que você conheça simplesmente a partir das ideias, sem olhar códigos prontos. Bons estudos!

    • @criandoEdesenvolvendo
      @criandoEdesenvolvendo 6 месяцев назад

      @@pgdinamica Obrigado pela dica, colega e professor. Continue com o bom trabalho em seu canal

  • @pedemoleque8632
    @pedemoleque8632 11 месяцев назад +2

    sua playlist é muito completa! obrigada pelo esforço e parabéns!!!!!

    • @pgdinamica
      @pgdinamica  11 месяцев назад +1

      Eu que agradeço! Fico feliz que esteja gostando :) bons estudos!

  • @isaaccamargos8479
    @isaaccamargos8479 2 года назад +3

    Os vídeos desse canal são muito bons, estão me ajudando muito obrigado.

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

      Fico feliz em saber! Bons estudos!

  • @rogeriomorais3334
    @rogeriomorais3334 3 года назад +3

    Excelente, só não estuda quem não quer!
    Parabéns.

  • @fransouza5214
    @fransouza5214 5 месяцев назад +1

    Que aula maravilhosa! obrigada por isso

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

      Disponha! Bons studos!

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

    muito boa a sua aula e muito bem explicada...parabéns!!!!!!!

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

    amigo, tu ta me ajudando tanto que nem sei!
    muito obrigado !

  • @thiagomaia7360
    @thiagomaia7360 3 года назад +3

    Voltando no vídeo percebi que os already_sorted não estavam tão sorted assim rs. Muito bom os vídeos.

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

      Olhos atentos 😉 obrigado!

  • @raphael.portela
    @raphael.portela Год назад

    me ajudando a seguir no Introduction to algoritthms do Thomas Cormen, valeu!!

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

    muito boa a vídeo aula

  • @lastmfstanding
    @lastmfstanding 11 дней назад

    Tem alguma vantagem em usar esse algoritmo em vez do bubble sort? Os dois são bem parecidos, mas o bubble me parece mais simples e menos custoso.

  • @aluzqueacende
    @aluzqueacende 25 дней назад

    Poderia fazer um vídeo sobre o algoritmo de ford-johnson?

  • @kevinvinicius1371
    @kevinvinicius1371 2 года назад +7

    Utilizei recursividade para construir o algoritmo do Selection Sort:
    #== recursive algorithm ==#
    def selectionSortRecursive(list):
    if len(list) == 1:
    return list
    lowest = list[0]
    for n in range(len(list)):
    if list[n] < lowest:
    lowest = list[n]
    list[n] = list[0]
    list[0] = lowest
    ordered_list = [list[0]] + selectionSortRecursive(list[1:])
    return ordered_list

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

      Esse código também não funciona

  • @Jessica-pz1bi
    @Jessica-pz1bi 5 месяцев назад

    Por favor, faz vídeo de todos os métodos de ordenação ex tabela hash, insertion_sort etc

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

      Insertion sort tem aqui no canal já, assim como merge sort e quick sort.

  • @jonathasfernandes96
    @jonathasfernandes96 2 года назад

    Obrigado pela explicação 😃

  • @ricksonrocha8343
    @ricksonrocha8343 2 года назад

    Excelente didática!

  • @ferro_gio
    @ferro_gio 5 лет назад +2

    Seu canal é muito bom cara, me ajudando muito

  • @PedroHenrique-yi3qb
    @PedroHenrique-yi3qb 2 года назад

    obrigado por salvar meu diploma, você é lendário.

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

      Hahaha, de nada! O único que pode se salvar é você, eu só dou uma ajudinha 😉 continue com essa postura de buscar conhecimento e aprender casa vez mais!

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

    Além de bonito o cara é um ótimo professor! Valeu de mais pela aula mestre!

  • @gui.lhermeb
    @gui.lhermeb 11 месяцев назад

    manoo esse canal salvou dmsss, na facul nao entendi muitoo bem

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

    Cara! Muuuuito obrigado... Enfim, estou aprendendo!

  • @arthurcandido
    @arthurcandido 2 года назад

    Valeu!

  • @psdorival
    @psdorival 2 года назад

    Se for duas entradas é o mesmo procedimento do código?

  • @gustavomendoncaortega394
    @gustavomendoncaortega394 6 месяцев назад

    Acredito que o segundo "if" não é necessário. Como você esta com o índice do menor, exceto os valores já ordenados, a troca pode ser feita sem necessidade da condição.
    O máximo que pode ocorrer, que não é o ideal, seria a troca de dois valores iguais. Considerando o peso de um "if" no código, não sei se é válido.
    Mas de resto, show demais!!!!

  • @matheuscosta5330
    @matheuscosta5330 4 года назад +1

    Bom demais!

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

    muito bom! valeu

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

    09:25
    Como não se sabe em que posição deseja-se colocar o 1?
    Se ele é valor mínimo, seu índice não é por definição oo 0?

  • @sergiosoaresnunes1601
    @sergiosoaresnunes1601 4 года назад +2

    Vim pelo Deschamps e to estudando justamente ordenação na facul e entendendo nada... Certeza que vai ajudar muito. Valeeeu

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

      Show! Se tiver faltando algum algoritmo de ordenação, fala aê :)

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

      @@pgdinamica opa, maravilha... não vi falando sobre o Heapsort, tem algum vídeo sobre ele? valeeu

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

      @@sergiosoaresnunes1601 É verdade! Não tem ainda, mas pretendo adicionar no futuro, é um algoritmo bem interessante.

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

      @@pgdinamica Valeu, pessoal! Será de grande ajuda para estudos... Sucesso sempre!

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

    Me ajudou muito, obrigado!

  • @tiagonascimento8577
    @tiagonascimento8577 2 года назад

    Muito bom, parabéns

  • @ndas_adriana
    @ndas_adriana 2 года назад

    Por que estou recebendo o erro:
    selection_sort.py", line 29, in selection_sort
    if lista[i] < lista[min_index]:
    TypeError: '

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

    Valeu cara! salvou a patria dos concurseiros.

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

    O for in ranger(): já não faz a função do len?

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

    Caralho ! Vocês explicam muito bem !!!! Show de bola

  • @troy6407
    @troy6407 5 лет назад

    Seu canal é top!

  • @nilsonsantos3469
    @nilsonsantos3469 4 года назад +1

    Otimo canal, sua didatica e mt boa...Mais 1 inscrito

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

      🤩🤩🤩🤩 Obrigado!

  • @alerhandrovenancio5617
    @alerhandrovenancio5617 2 года назад

    eu queria que você fizesse no Portugal studio!!

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

      Implementar o algoritmo noutra linguagem é um ótimo exercício pra você conferir se entendeu realmente.

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

    Ótimo canal de lógica de programação

  • @mohamedbinladen9711
    @mohamedbinladen9711 4 года назад +1

    Simplesmente incrível, parabéns pelo projeto e obrigado pelo conteúdo de qualidade!

  • @vandsonfalcao
    @vandsonfalcao 2 года назад

    krl mlk muito bom, vlw

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

    Excelente! Poderia fazer o Bucketsort (ordenação por baldes)?

  • @igor8036
    @igor8036 5 лет назад

    Parabéns pelo canal
    Conteúdo de ótima qualidade 👏

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

    7:08 se começar com o minimo usando o método min, tipo minimo = min(lista) tornaria o algoritimo mais ou menos eficiente?

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

      O que você acha que o método min(lista) faz?

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

    valeu, alisson!

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

    Faz um vídeo sobre heapsort em python

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

      E eu te amo, ta me salvando muito na faculdade de si kkkkk

  • @FelipeSantos-rz1ro
    @FelipeSantos-rz1ro 5 лет назад +1

    Bom vídeo. Mas amigo fiquei com uma dúvida, o segundo IF é necessário? Pq eu pensei, se eu já comparei com o primeiro elemento e achei o índice do vetor do menor, não precisa mais comparar. Mas eu posso estar errado (sou noob na programação)

    • @pgdinamica
      @pgdinamica  5 лет назад +1

      Seu raciocínio está correto! O segundo if evita que haja trocas no caso em que os valores são idênticos (por exemplo, se já estiverem ordenados dali pra frente ou forem todos repetidos), mas se você remover essa condição, o algoritmo continua funcionando e não há alteração na complexidade O(n^2).

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

    Parabéns pelo conteúdo, ficou muito bem explicado. Ganhou mais um inscrito

  • @andrezanobrega9176
    @andrezanobrega9176 5 лет назад

    Muito bom!!

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

    pode me dar ideia de onde é implementado esse tipo de algoritmo? alguma situação

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

      1. Busca: para encontrar dados mais rapidamente, o algoritmo mais eficiente requer que os dados estejam ordenados: ruclips.net/video/M719mDyirW0/видео.html
      2. Desenhos vetoriais: para desenhar formas vetoriais, como as letras de um documento PDF, por exemplo, ou polígonos, é necessário definir uma ordenação dos pontos. Se você procurar por "algoritmo de fecho convexo" vai ter uma ideia do problema pra polígonos convexos. Representações côncavas são mais complicadas.
      Repare que o selection sort não é o algoritmo de ordenação mais eficiente.

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

    OLÁ pode me passar uma dica de como ver se realmente ela está ordenada depois do selection sort :)

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

      Testes por classe de equivalência como no final do vídeo. Teste pelo menos essas classes:
      1. Lista vazia
      2. Lista já ordenada
      3. Lista pseudo-aleatória
      4. Lista na ordem reversa
      5. Lista com duplicados
      6. Lista com um único elemento

  • @isaias.araujo
    @isaias.araujo 7 месяцев назад

    Na parte de testes o número 76 da lista ordenada, estava fora de ordem, mas o algoritmo corrigiu isso no teste hehe
    Prova de que funcionou tranquilamente

  • @upalaaa
    @upalaaa Год назад +2

    Esse código que vc ensinou e colocou na tela, não funciona. Fiz idêntico e a lista continuou igual 🤷‍♀️

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

    Assistido✔️
    Aqui marca o dia que mudou o cenário dos vídeos (você mudou de casa ou só de cômodo mesmo?) XD
    Por que a complexidade desse algoritmo é O(n²)? Não seria O(n) pois ele está percorrendo o array pra escolher o elemento menor e mudar a posição dele?

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

      Mudei de casa. Kizzy e eu viemos morar juntos :)
      A complexidade é O(n^2), porque para cada índice do array, você pode ter que percorrer o array todo. Ou seja, só na primeira iteração do for externo, você já tem O(n). Como o laço externo executa *n* vezes, fica n^2.

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

    Professor, achei essa IDE bem interessante, qual é o nome dela?

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

      Não é uma IDE, é o editor de texto Visual Studio Code: code.visualstudio.com/

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

      @@pgdinamica Obrigado, quando eu fui assistindo aos outros vídeos pude identificar. No Mac é um pouco diferente. 😅

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

      @@pgdinamica Desde já, parabéns pelo conteúdo. Simplesmente incrível!!

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

    aaaa por que o print fica antes da orndeção?? ;-;

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

    oi, poderia me explicar o porquê daquele condicional if? após o segundo for, min_index vai ser necessariamente o índice do menor valor da lista, então acho que a condição desse if sempre vai ser verdadeira, não? lista[min_index] vai ser sempre menor que lista[j], mas não tenho certeza, por isso pergunto. o meu código ficou idêntico ao seu exceto que os comandos que você colocou no if no meu código estão sem if, dentro do for grandão mesmo, e tá funcionando certinho. de qualquer forma, obrigado, me ajudou bastante. ps: qual o editor que você usa no video?

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

      O segundo if evita que haja trocas no caso em que os valores são idênticos (por exemplo, se já estiverem ordenados dali pra frente ou forem todos repetidos), mas se você remover essa condição, o algoritmo continua funcionando. De todo, modo, não há alteração na complexidade O(n^2) do algoritmo!
      O editor do vídeo é o Visual Studio Code. Nos vídeos mais antigos, usava o Atom, mas o VS Code tem sido melhor pra mim já há uns 2 anos quase.

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

    O código do github ta diferente do codigo da aula e no video voce cortou o final do codigo

  • @Leossj1
    @Leossj1 2 года назад +5

    to me sentindo bem burro, entendo a teoria, mas nao entendo o código

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

      Se você entende a teoria, tente implementá-la sem olhar o código. Quando tiver sua versão, você terá uma noção melhor de como ler outros códigos para o mesmo problema.

    • @Felipe-ph5zv
      @Felipe-ph5zv Год назад

      tbm tô nessa

    • @matheussantos-v8k
      @matheussantos-v8k 4 месяца назад

      Tbm tô nessa

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

    top²

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

    Muito bom!

  • @gilmarcossantos3951
    @gilmarcossantos3951 5 дней назад

    Muito bom!