Ordenamiento de Arrays
A lo largo de la historia de la programación se han buscado nuevas formas de estructuras de datos o maneras de manejar los datos.
Pues como solución a esta interrogante salen las estructuras de datos más conocidas como vectores y matrices (Arrays en ingles)
Una matriz es una estructura de datos que contiene varias variables del mismo tipo.Básicamente es un conjunto de vectores. Una matriz puede ser unidimensional, multidimensional o escalonada.
Los algoritmos de ordenamiento nos permiten, como su nombre lo dice, ordenar. En este caso, nos servirán para ordenar vectores o matrices con valores asignados aleatoriamente. Nos centraremos en los métodos más populares, analizando la cantidad de comparaciones que suceden, el tiempo quedemora y revisando el código, escrito en Java, de cada algoritmo.
Ordenamientos Internos y Externos
Internos: los valores a ordenar están en memoria principal, por lo que se asume que el tiempo que se requiere para acceder cualquier elemento sea el mismo (a[1], a[500], etc).
Externos: Los valores a ordenar están en memoria secundaria (disco, cinta, cilindro magnético, etc), por lo que se asumeque el tiempo que se requiere para acceder a cualquier elemento depende de la última posición accedida (posición 1, posición 500…)
Existen tres casos al ordenar información
1) El peor caso para el algoritmo es cuando la información que se tiene está ordenada al revés.
2) El Mejor es cuando la información está ordenada.
3) El caso Promedio es cuando la información está ordenada al azar.METODOS ITERATIVOS
Estos métodos son simples de entender y de programar ya que son iterativos, simples ciclos y sentencias que hacen que el vector pueda ser ordenado.
Dentro de los Algoritmos iterativos encontramos:
– Burbuja
– Inserción
– Selección
– Shellsort2.2
METODOS RECURSIVOS
Estos métodos son aún más complejos, requieren de mayor atención y conocimiento para serentendidos. Son rápidos y efectivos, utilizan generalmente la técnica Divide y vencerás, que consiste en dividir un problema grande en varios pequeños para que sea más fácil resolverlos.
Mediante llamadas recursivas a si mismos, es posible que el tiempo de ejecución y de ordenación sea más optimo.
Dento de los algoritmos recursivos encontramos:
– Ordenamiento por Mezclas (merge)
–Ordenamiento Rápido (quick)
Bubble Sort (Ordenamiento Burbuja):
Es el algoritmo de ordenamiento más sencillo de todos, conocido también como método del intercambio directo, el funcionamiento se basa en la revisión de cada elemento de la lista que va a ser ordenada con el elemento siguiente, intercambiando sus posiciones si están en el orden equivocado, para esto se requieren varias revisiones hastaque ya no se necesiten más intercambios, lo que indica que la lista ha sido ordenada.
El origen del nombre de este algoritmo proviene de la forma con la que suben por la lista los elementos durante los intercambios, tal y como si fueran "burbujas", el algoritmo fundamental de este método es la simple comparación de elementos siendo así el más fácil de implementar.
Codificación enJava:
public static int[] OrdenarBurbuja(int[] n)
{
int temp;
int t = n.length;
for (int i = 1; i < t; i++)
{
for (int k = t- 1; k >= i; k--)
{
if(n[k] < n[k-1])
{
temp = n[k];
n[k] = n[k-1];
n[k-1]= temp;
}
}
}
returnn;
}
Ventajas:
-Fácil implementación.
- No requiere memoria adicional.
Desventajas:
- Muy lento.
- Realiza numerosas comparaciones.
- Realiza numerosos intercambios.
Selection Sort. (Ordenamiento de selección)
Su lógica es sencilla, compara cada elemento con sus siguientes, guardando el índice del elemento de menor valor...
Regístrate para leer el documento completo.