Los algoritmos de ordenacin son aquellos que se preocupan por ordenar los elementos
de un vector. Para ordenar los elementos de un vector hay que decidir dos cosas: por qu
campo vamos a ordenar, y que querr decir que un vector est ordenado.
Por ejemplo, podemos tener un vector cuyas componentes sean registros que contengan
datos sobre personas (nombre, apellidos, telfono, etc). Tenemos varias posibilidades:
decidir ordenar por nombre, por apellidos, por telfono... Adems, si ordenamos por
nombre, ser de la A a la Z o de la Z a la A; igual si ordenamos por apellidos, mientras
que si ordenamos por telfono podemos querer hacerlo de forma ascendente o
descendente.
Si nuestro vector es, por contra, numrico, tenemos menos cosas que decidir, ya que al
no tratarse de una estructura compleja hay un nico campo por el que ordenar. An as,
tendremos que decidir si consideraremos que el vector est ordenado de forma
ascendente o descendente.
Vamos a estudiar los dos algoritmos ms sencillos de ordenacin. No son los ms
eficientes, pero sirven para ofrecer una primera idea de cmo realizar la tarea de
ordenacin. Para aprender sobre algoritmos ms eficientes podemos buscar informacin
adicional en la web (Google es siempre un buen aliado).
Algoritmo de seleccin
Algoritmo de la burbuja
Y ya hemos terminado, puesto que el subvector que queda es de un nico elemento que,
por fuerza, tiene que estar bien colocado, ya que hemos "empujado" a los mayores que
el a la posicin correcta.
El algoritmo, suponiendo que estamos tratando con un vector numrico (de enteros, por
ejemplo), sera:
VARIABLES
v: Vector[1..N] de Entero;
i, j, aux: Entero;
FIN VARIABLES
desde i = 1 hasta N hacer
desde j = 1 hasta N - i hacer
si v[j] > v[j+1] entonces
aux = v[j];
v[j] = v[j+1];
v[j+1] = aux;
fin desde
fin desde