Planteamiento del Problema
¿Qué tengo?
Un vector de 5 números
¿Qué quiero?
Ordenar el vector de forma ascendente
¿Cómo lo hago?
- Tenemos 5 elementos, de los cuales iremos ordenando posición a posición (empezando por la posición 0)
- Una posición está ordenada cuando todos los elementos de las posiciones posteriores son mayores que el elemento de la posición que se está ordenando.
<imagen de posición i ordenada>
- Si ordenamos posición a posición, vemos que si ordenamos de la posición 0 a la 3, la cuarta quedará ordenada automáticamente (no hay posiciones posteriores con la cual compararla)
Siguiendo estas pautas, haremos el procedimiento para el vector de 5 elementos, razonando a cámara lenta:
(ver enlace)
(ver enlace)
Ahora que hemos visto poco a poco cómo sería la ejecución del algoritmo, planteamos el pseudocódigo para el vector de 5 elementos:
/***Método de Ordenamiento General***/
iPos = 0; //representa cada posición del vector
Para cada elemento del Vector hasta la posición 3
OrdenarDesde(iPos); //Ordena el vector a partir de la posición iPos
Fin Para
/***Método OrdenarDesde***/
iPosCompara = iPos + 1; //esta variable es la que recorre las posiciones posteriores a iPos para comparar
elemento1 = Vector[iPos];
Mientras (iPosCompara <= 4)
elemento2 = Vector[iPosCompara];
//Se comparan: elemento1 y elemento2
Si elemento1<= elemento2 //no tiene que cambiar de posición
iPosCompara++
Caso Contrario
Intercambia(iPos, iPosCompara) //intercambia los elementos
iPosCompara = iPos + 1; //vuelve a empezar el ordenamiento desde la posición iPos
elemento1 = Vector[iPos];
Fin Si
Fin Mientras
/***Método Intercambia***/
aux = Vector[iPos]; //guarda temporalmente el valor de la posición iPos
Vector[iPos] = Vector[iPosCompara];
Vector[iPosCompara] = aux; //utiliza el valor guardado en aux para el intercambio
Para terminar, os dejo el mismo código como un proyecto de consola en c# generalizado para vectores de N elementos.
- Programa Principal
- Clase con Algortimo de Ordenamiento
- Programa Principal
- Clase con Algortimo de Ordenamiento
Hola MIPB,
ResponderEliminarGenial ordenamiento, aunque lo más genial como siempre son esos fantásticos comentarios en verde. ;->
Suerte que los lenguajes actuales ya poseen rutinas incorporadas de base para ordenación de vectores. Menudo trabajazo.
*nota*: el enlace del video no consigo verlo.
Como siempre un gran trabajo, quien no aprende es porque no quiere. Todo muy bien explicado.
Un abrazo MIPB.
Muy bien explicado.
ResponderEliminarGracias Tatiana, si tienes alguna duda en concreto que creas que estaría bien poder explicarla en este Blog puedes escribirme y preparo un post.
EliminarSaludos y Gracias :)