![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Python ::: Dicas & Truques ::: Ordenação e Pesquisa (Busca) |
Como usar a ordenação Selection Sort em Python - Ordenação por Seleção em PythonQuantidade de visualizações: 765 vezes |
Nesta dica mostrarei os detalhes da ordenação Selection Sort e como implementá-la em Python. Também chamada de Ordenação por Seleção, esta ordenação classifica o array (ou vetor) de forma repetitiva procurando sempre o menor elemento na parte não ordenada do vetor e movendo-o para a parte já ordenada. Mencionei menor elemento para o caso da classificação em ordem crescente. Se for ordem decrescente então deveremos buscar sempre o maior elemento. Considerando o vetor [1, 6, 9, 3, 7, 8, 5, 2] nós teremos as iterações do laço externo e do laço interno, resultando nas seguintes trocas de elementos: Troca 1: 2 trocou de lugar com 6 Resultado: [1, 2, 9, 3, 7, 8, 5, 6] Troca 2: 3 trocou de lugar com 9 Resultado: [1, 2, 3, 9, 7, 8, 5, 6] Troca 3: 5 trocou de lugar com 9 Resultado: [1, 2, 3, 5, 7, 8, 9, 6] Troca 4: 6 trocou de lugar com 7 Resultado: [1, 2, 3, 5, 6, 8, 9, 7] Troca 5: 7 trocou de lugar com 8 Resultado: [1, 2, 3, 5, 6, 7, 9, 8] Troca 6: 8 trocou de lugar com 9 Resultado: [1, 2, 3, 5, 6, 7, 8, 9] Veja agora o código Python completo para a ordenação Selection Sort. Coloquei comentários detalhados para facilitar o seu entendimento do algorítmo: # função principal do programa def main(): # vamos criar um vetor de inteiros valores = [1, 6, 9, 3, 7, 8, 5, 2] # vamos mostrar o vetor na ordem original print("Vetor na ordem original: {0}".format(valores)) # agora vamos usar a ordenação Selection Sort # para ordenar o vetor em ordem crescente ordenar_selection_sort(valores) # e agora vamos mostrar o vetor ordenado print("Vetor ordenado: {0}".format(valores)) # função que usa a ordenação Selection Sort para # ordenar um array de inteiros def ordenar_selection_sort(vetor): # vamos obter o tamanho do vetor n = len(vetor) # o laço externo percorre os elementos do vetor a partir # do primeiro elemento e vai até o penúltimo elemento for i in range(0, n - 1): # encontramos o menor elemento do sub-vetor que ainda # não foi ordenado indice_menor_elemento = i # o laço interno começa no índice (i + 1) e vai # até a quantidade de elementos no vetor - 1 for j in range(i + 1, n): # o elemento atual (j) é menor que o elemento no # índice do menor elemento? if vetor[j] < vetor[indice_menor_elemento]: # atualizamos o índice do menor elemento indice_menor_elemento = j # troca o menor elemento com o elemento no índice # i, no sub-vetor já ordenado if vetor[indice_menor_elemento] != vetor[i]: temp = vetor[indice_menor_elemento] vetor[indice_menor_elemento] = vetor[i] vetor[i] = temp if __name__== "__main__": main() Por apresentar laços aninhados (um laço externo e um interno), a ordenação Selection Sort não é recomendada para grandes conjuntos de dados, visto que sua complexidade de tempo é de O(n2). |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Python - Como inserir uma determinada quantidade de espaços à esquerda de um valor numérico usando Python C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |