El algoritmo funciona de la siguiente manera: Se guarda la posición del
índice i del vector en una variable llamada mínimo. Se recorre el vector con el índice j. Durante el recorrido del índice j se evalúa si el vector en la posición de j es menor al valor del vector en la posición dada por la variable mínimo. En caso afirmativo, la variable mínimo toma el valor del índice j. Cuando se termina el recorrido se evalúa si el valor del índice i es diferente al valor de la variable mínimo, si es así se intercambian los valores de los arreglos y se procede con la siguiente iteración, aumentando en uno el valor del índice i. El código en Python: Método de Ordenamiento de Selección El Método de ordenamiento por selección consiste en buscar el menor entre todos los elementos no ordenados y colocarlo al principio, luego se debe repetir lo mismo con los restantes (no se tienen en cuenta los ya ordenados). Su código en Python 3 sería el siguiente: Ordenamiento por selección Consiste en encontrar el menor de todos los elementos del vector e intercambiarlo con el que está en la primera posición. Luego el segundo más pequeño, y así sucesivamente hasta ordenarlo todo. Paso 1.1: Buscar el mayor de todos los elementos de la lista. Lista = | 3 | 2 | -1 | 5 | 0 | 2 | Encuentra el valor 5 en la posición 3. Paso 1.2: Poner el mayor al final (intercambiar el que está en la última posición de la lista con el mayor encontrado). Intercambia el elemento de la posición 3 con el de la posición 5. En la última posición de la lista está el mayor de todos. Lista = | 3 | 2 | -1 | 2 | 0 | 5 | Paso 2.1: Buscar el mayor de todos los elementos del segmento de la lista entre la primera y la anteúltima posición. Lista = | 3 | 2 | -1 | 2 | 0 | 5 | Encuentra el valor 3 en la posición 0. Paso 2.2: Poner el mayor al final del segmento (intercambiar el que está en la última posición del segmento, o sea anteúltima posición de la lista, con el mayor encontrado). Lista = | 0 | 2 | -1 | 2 | 3 | 5 | Intercambia el elemento de la posición 0 con el valor de la posición 4. En la anteúltima y última posición de la lista están los dos mayores en su posición definitiva. Paso n: Se termina cuando queda un único elemento sin tratar: el que está en la primera posición de la lista, y que es el menor de todos porque todos los mayores fueron reubicados. Lista = | -1 | 0 | 2 | 2 | 3 | 5 | Invariante en el ordenamiento por selección Todo ordenamiento tiene un invariante que permite asegurarse de que cada paso que se toma va en la dirección de obtener una lista ordenada. En el caso del ordenamiento por selección, el invariante es que los elementos desde n+1 hasta el final de la lista están ordenados y son mayores que los elementos de 0 a n, es decir que ya están en su posición definitiva. ¿Cuánto cuesta ordenar por selección? Ordenar por selección una lista de tamaño N insume tiempo del orden de N^2. Como ya se vio, este tiempo es independiente de si la lista estaba previamente ordenada o no. En cuanto al espacio utilizado, sólo se tiene en memoria la lista que se desea ordenar y algunas variables de tamaño 1.