Title Text

Selection Sort

¿Qué veremos?

¿Qué veremos?

  • Definición
  • Simulación
  • Algoritmo: Orden ascendente y descendente 
  • Rendimiento del Algoritmo
  • Preguntas y respuestas

Selection Sort

Es una combinación de búsqueda y ordenamiento

 

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







        #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]

Rendimiento del Algoritmo

O(n )

2

Preguntas y respuestas

selection_sort

By Jorge Rios

selection_sort

  • 34