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!
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
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!
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!
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!!!!
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)
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).
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.
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
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
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?
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.
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?
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.
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.
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!
Seja bem-vindo!
Tudo que eu precisava, uma playlist dahora sobre algoritmos de ordenação
🤩🤩🤩
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
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!
@@pgdinamica Obrigado pela dica, colega e professor. Continue com o bom trabalho em seu canal
sua playlist é muito completa! obrigada pelo esforço e parabéns!!!!!
Eu que agradeço! Fico feliz que esteja gostando :) bons estudos!
Os vídeos desse canal são muito bons, estão me ajudando muito obrigado.
Fico feliz em saber! Bons estudos!
Excelente, só não estuda quem não quer!
Parabéns.
Valeu!
Que aula maravilhosa! obrigada por isso
Disponha! Bons studos!
muito boa a sua aula e muito bem explicada...parabéns!!!!!!!
Obrigado!
amigo, tu ta me ajudando tanto que nem sei!
muito obrigado !
😊🙌🏾
Voltando no vídeo percebi que os already_sorted não estavam tão sorted assim rs. Muito bom os vídeos.
Olhos atentos 😉 obrigado!
me ajudando a seguir no Introduction to algoritthms do Thomas Cormen, valeu!!
De nada!
muito boa a vídeo aula
Obrigado!
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.
Poderia fazer um vídeo sobre o algoritmo de ford-johnson?
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
Esse código também não funciona
Por favor, faz vídeo de todos os métodos de ordenação ex tabela hash, insertion_sort etc
Insertion sort tem aqui no canal já, assim como merge sort e quick sort.
Obrigado pela explicação 😃
De nada!
Excelente didática!
Obrigado!
Seu canal é muito bom cara, me ajudando muito
Valeu!
obrigado por salvar meu diploma, você é lendário.
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!
Além de bonito o cara é um ótimo professor! Valeu de mais pela aula mestre!
Valeu!
manoo esse canal salvou dmsss, na facul nao entendi muitoo bem
Cara! Muuuuito obrigado... Enfim, estou aprendendo!
Valeu!
🤙🏾
Se for duas entradas é o mesmo procedimento do código?
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!!!!
Bom demais!
Obrigado!
muito bom! valeu
Valeu!
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?
Vim pelo Deschamps e to estudando justamente ordenação na facul e entendendo nada... Certeza que vai ajudar muito. Valeeeu
Show! Se tiver faltando algum algoritmo de ordenação, fala aê :)
@@pgdinamica opa, maravilha... não vi falando sobre o Heapsort, tem algum vídeo sobre ele? valeeu
@@sergiosoaresnunes1601 É verdade! Não tem ainda, mas pretendo adicionar no futuro, é um algoritmo bem interessante.
@@pgdinamica Valeu, pessoal! Será de grande ajuda para estudos... Sucesso sempre!
Me ajudou muito, obrigado!
Que ótimo! =D
Muito bom, parabéns
Valeu!
Por que estou recebendo o erro:
selection_sort.py", line 29, in selection_sort
if lista[i] < lista[min_index]:
TypeError: '
Valeu cara! salvou a patria dos concurseiros.
🤙🏾😉
O for in ranger(): já não faz a função do len?
Caralho ! Vocês explicam muito bem !!!! Show de bola
Valeu 😊
Seu canal é top!
Muito obrigado, Troy!
Otimo canal, sua didatica e mt boa...Mais 1 inscrito
🤩🤩🤩🤩 Obrigado!
eu queria que você fizesse no Portugal studio!!
Implementar o algoritmo noutra linguagem é um ótimo exercício pra você conferir se entendeu realmente.
Ótimo canal de lógica de programação
aah, obrigada!
Simplesmente incrível, parabéns pelo projeto e obrigado pelo conteúdo de qualidade!
Valeu!
krl mlk muito bom, vlw
Excelente! Poderia fazer o Bucketsort (ordenação por baldes)?
Parabéns pelo canal
Conteúdo de ótima qualidade 👏
Muito obrigado!
7:08 se começar com o minimo usando o método min, tipo minimo = min(lista) tornaria o algoritimo mais ou menos eficiente?
O que você acha que o método min(lista) faz?
valeu, alisson!
😉🤙🏾
Faz um vídeo sobre heapsort em python
E eu te amo, ta me salvando muito na faculdade de si kkkkk
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)
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).
Parabéns pelo conteúdo, ficou muito bem explicado. Ganhou mais um inscrito
Valeu! 🤙🏾
Muito bom!!
Obrigada! :)
pode me dar ideia de onde é implementado esse tipo de algoritmo? alguma situação
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.
OLÁ pode me passar uma dica de como ver se realmente ela está ordenada depois do selection sort :)
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
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
😉
Esse código que vc ensinou e colocou na tela, não funciona. Fiz idêntico e a lista continuou igual 🤷♀️
Mesmo comigo
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?
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.
Professor, achei essa IDE bem interessante, qual é o nome dela?
Não é uma IDE, é o editor de texto Visual Studio Code: code.visualstudio.com/
@@pgdinamica Obrigado, quando eu fui assistindo aos outros vídeos pude identificar. No Mac é um pouco diferente. 😅
@@pgdinamica Desde já, parabéns pelo conteúdo. Simplesmente incrível!!
aaaa por que o print fica antes da orndeção?? ;-;
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?
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.
O código do github ta diferente do codigo da aula e no video voce cortou o final do codigo
to me sentindo bem burro, entendo a teoria, mas nao entendo o código
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.
tbm tô nessa
Tbm tô nessa
top²
🤙🏾😁
Muito bom!
Obrigado!
Muito bom!
Valeu!