Hola en esta ocasión revisaremos algunos algoritmos de ordenamiento para esto seguiremos el siguiente plan de temas Primero revisaremos por qué es útil ordenar luego revisaremos los algoritmos de selección, burbuja e inserción y finalmente revisaremos un caso de estudio donde podamos aplicar esos algoritmos Empecemos identificando por qué es util ordenar Por una parte, como habíamos dicho en el modelo anterior, es útil para facilitar los procesos de búsqueda también es útil para definir algunos conceptos que solo tienen sentido cuando los elementos están ordenados por ejemplo, la mediana solo tiene sentido si los elementos se encuentran ordenados de menor a mayor o de mayor a menor también es útil cuando queremos presentar a nuestro usuario la información de manera ordenada esto puede facilitar su lectura o su revisión. Sabiendo esto veamos nuestro primer algoritmo de ordenamiento el algoritmo de selección en este algoritmo seguiremos los siguientes pasos Primero, definiremos una parte ordenada como segundo paso, buscaremos en el elemento menor o mayor dependiendo de en qué forma estemos ordenando de la parte desordenada el tercer paso será intercambiar este elemento con el primero de la parte desordenada y luego repetiremos hasta que logremos tener todos los elementos ordenados. Veamos esto en un diagrama para esto supongamos que queremos ordenar las pizzas que sabe preparar un cocinero según su precio de producción de menor a mayor este es el arreglo original de pizzas entonces nuestro primer paso es definir una parte ordenada al iniciar aún no hemos ordenado nada entonces la parte ordenada será vacía el siguiente paso es buscar el menor dentro de la parte desordenada para nuestro ejemplo será la pizza que cuesta $21.000 pesos. El tercer paso es intercambiar ese menor con el primero de la parte desordenada es decir, debemos intercambiar la pizza de 21.000 con la pizza de 58.000 como hemos pasado del menor al principio ya tenemos una parte ordenada la cual está compuesta solo por la pizza de 21.000 como último paso, debemos repetir el proceso hasta que todos los elementos estén ordenados es decir buscamos el menor que en este caso es 24.000 y lo pasamos al principio. Continuamos buscando el menor en este caso es 54.000 y lo pasamos al principio nuevamente buscamos el menor de la parte desordenada el cual es 55.000 y lo pasamos al principio luego buscamos el menor de la parte desordenada en este caso es 57.000 y lo intercambiamos con el primero de la parte desordenada que es 58.000 continuamos buscando el menor, ahora es 58.000 lo debemos intercambiar con el primero de la parte desordenada o sea, 87.000. Nuevamente buscamos el menor, en este caso es 75.000, lo pasaremos al principio intercambiándolo por 81.000 nuevamente buscamos el menor, en este caso resulta que es 81.000 y aunque ya está ordenado igual debemos hacer el intercambio y debemos realizar el paso finalmente nuevamente buscamos el menor, en ese caso es 87.000 y lo ponemos al principio en este momento ya podemos decir que todos los elementos en nuestro arreglo se encuentran ordenados. Veamos cómo transformar este algoritmo de selección en código Java para eso traigamos la declaración de la clase "cocinero" donde teníamos un arreglo de pizzas y construyamos el método "ordenar pizzas por precio" lo primero que haremos es buscar el menor elemento de la parte desordenada suponiendo que hay al menos un elemento para eso traeremos el algoritmo que habíamos construido en el módulo anterior. Iniciaremos diciendo que el menor elemento o la pizza de menor precio es la pizza de la posición cero recorreremos todas las demás pizzas y miraremos si alguna de ellas tiene un precio menor al de la pizza que hemos declarado como menor en caso de que sea así, actualizaremos el menor para que sea la pizza que estamos revisando en este momento. Ahora debemos intercambiar la pizza de menor precio con la pizza que se encuentra en la primera posición de la parte desordenada esto quiere decir qué pasaremos la pizza de la posición cero a donde se encontraba el menor que es posición menor y pasaremos la pizza de menor precio a la posición cero. Ahora debemos repetir esto hasta que todos los elementos estén ordenados pero antes de hacer esto notemos que los pasos anteriores los hemos hecho de forma específica para la primera pizza, es decir, la pizza de la posición cero y por esto nuestro recorrido ha iniciado en la posición uno para no comparar la pizza consigo misma. Sin embargo, debemos hacerlo en forma genérica por lo tanto al repetir esto para todas las demás pizzas es decir, al hacer un segundo recorrido lo haremos de forma genérica ahora al buscar el menor no iniciamos en la posición cero sino que iniciamos en la posición I le hace línea de intercambio, no pasamos la pizza menor a la posición cero sino a la posición I que es en donde vamos revisando en este momento. Con esto hemos terminado el tema del algoritmo de selección en la próxima sesión trataremos el tema del algoritmo de burbuja.