Ordenamiento
Los
3 Métodos de Ordenamiento más populares
1)
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. 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 implementa.
·
Ejemplo de
burbuja
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;
}
}
}
return n;
}
Codificación en C#:
Public int[] OrdenarBurbuja(int[]x)
{
int t= x.Length, temp;
for(int i=1 ; i< t ; i++)
{
for(int j = t-1 ; j >= i; j--)
{
if(x[j] < x[j-1])
{
temp= x[j];
x[j]= x[j-1];
x[j-1]= temp;
}
}
}
}
2)
Quick Sort (Ordenamiento Rápido):
Es el algoritmo de
ordenamiento más eficiente de todos, se basa en la técnica de "Divide
y Vencerás", que permite en promedio, ordenar n elementos en un tiempo
proporcional a n*log(n). Algoritmo Fundamental:
1.
Elegir un elemento de la lista de
elementos a ordenar, al que llamaremos pivote.
2.
Resituar los demás elementos de la lista
a cada lado del pivote, de manera que a un lado queden todos los menores que
él, y al otro los mayores.
3.
La lista queda separada en dos
sublistas, una formada por los elementos a la izquierda del pivote, y otra por
los elementos a su derecha.
4.
Repetir este proceso de forma recursiva
para cada sublista mientras éstas contengan más de un elemento. Una vez
terminado este proceso todos los elementos estarán ordenados.
3)
Heap
Sort (Ordenamiento por Montículos):
Es un algoritmo de ordenamiento no
recursivo, no estable, consiste en almacenar todos los elementos del
vector a ordenar en un montículo (heap), y luego extraer el nodo que queda como
nodo raíz del montículo (cima) en sucesivas iteraciones obteniendo el conjunto
ordenado. Basa su funcionamiento en una propiedad de los montículos, por la
cual, la cima contiene siempre el menor elemento (o el mayor, según se haya
definido el montículo) de todos los almacenados en él.
ejemplo de ordenamientos
·
Ordena los números.
#include<stdio.h>
#include<conio.h>
int x[4]={1,4,8,6};
int n=4,j=0,i=0;
int temp=0,minimo=0;
void main()
{
clrscr();
for(i=0;i<n-1;i++)
{
minimo=i;
for (j=i+1;j<n;j++)
{
if (x[minimo] > x[j])
{
minimo=j;
}
}
temp=x[minimo];
x[minimo]=x;
x=temp;
}
for(i=0;i<n;i++)
{
printf("%d",x);
}
getch();
}
No hay comentarios.:
Publicar un comentario