En este algoritmo, el ordenamiento está hecho después de seleccionar el elemento más pequeño (o más grande) de una lista (o arreglo) de elementos, siendo desplazado a una ubicación en particular de la lista.
Durante cada pasada, el elemento "desordenado" con el elemento de menor (o mayor) valor es movido a su posición correcta
#Selection Sort Ascendente
def selectionSort(theList):
for i in range(len(theList) - 1):
#Suponemos que el elemento con índice j es el mínimo
minimum = i
#Comparar con elementos no ordenados
for k in range(i+1, len(theList)):
if theList[k] < theList[minimum]:
#Actualizar el índice mínimo con el elemento más pequeño
minimum = k
#Intercambiar los elementos
theList[i],theList[minimum]=theList[minimum],theList[i]
#Selection Sort Descendente
def selectionSort(theList):
for i in range(len(theList) - 1):
#Suponemos que el elemento con índice j es el mínimo
minimum = i
#Comparar con elementos no ordenados
for k in range(i+1, len(theList)):
if theList[k] > theList[minimum]:
#Actualizar el índice mínimo con el elemento más pequeño
minimum = k
#Intercambiar los elementos
theList[i],theList[minimum]=theList[minimum],theList[i]
# -*- coding: utf-8 -*-
unsorted_list = [6, 3, 4, 5, 2, 1, 1, 20, 36, 50, 2]
#Selection Sort Ascendente
def selectionSort(theList):
for i in range(len(theList) - 1):
#Suponemos que el elemento con índice j es el mínimo
minimum = i
#Comparar con elementos no ordenados
for k in range(i+1, len(theList)):
if theList[k] < theList[minimum]:
#Actualizar el índice mínimo con el elemento más pequeño
minimum = k
#Intercambiar los elementos
theList[i],theList[minimum]=theList[minimum],theList[i]
print("Lista desordenada:")
print(len(unsorted_list) - 1)
print(unsorted_list, "\n")
selectionSort(unsorted_list)
#output
[1, 1, 2, 2, 3, 4, 5, 6, 20, 36, 50]
#input
[6, 3, 4, 5, 2, 1, 1, 20, 36, 50, 2]
2
Preguntas y