Metodos de Ordenamiento Java
Metodos de Ordenamiento Java
Metodos de Ordenamiento Java
Mtodos de ordenacin
Por intercambio
Directa
Por seleccin
Por insercin
Directa
Binaria
Shell
Todos los mtodos utilizan dos operaciones bsicas para llevar a cabo la
ordenacin de los elementos: la comparacin y el movimiento de los
mismos. Por lo tanto, si lo que se quiere ordenar son objetos hay que tener
en cuenta que se deben sobrecargar los operadores de comparacin en las
clases correspondientes.
METODOS DE ORDENACION POR INTERCAMBIO
Estos mtodos son de los ms sencillos y por lo tanto ms usados para
ordenar un conjunto pequeo de datos. Se caracterizan por que se
intercambian los valores como resultado de la comparacin de los mismos.
Existen varios mtodos que se basan en esta idea. Los ms conocidos son:
. Intercambio directo:
-
. Sheker:
El algoritmo conocido con el nombre de Sheker o de sacudida es una
combinacin de los dos anteriores. Cada recorrido del arreglo se
divide en dos etapas, en la primera se mueven los elementos ms
pequeos hacia la izquierda y en la segunda, los elementos ms
grandes hacia la derecha. En cada etapa se guarda la posicin donde
se realiz el intercambio, y de esta manera en el siguiente recorrido
del arreglo el intercambio, y de esta manera en el siguiente recorrido
del arreglo el intervalo se reduce entre estas dos posiciones. El
proceso termina cuando no se producen intercambios o bien, cuando
numeros=new int[tam];
//cdigo para realizar la introduccin de los valores
for(int elem=0;elem<=tam-1;elem++)
{
System.out.println("Teclea un nmero");
numeros[elem]=lector.nextInt();
}
//Cdigo para que se realice el ordenamiento, se hacen 2 ciclos para
realizar el procedimiento para ordenar cada uno de los nmeros. Se
compara el nmero actual con el de arriba, si lo es, esos valores
intercambian de posicin en el arreglo//
for(int c=0;c<=tam;c++)
{
for(int d=0;d<=tam-2;d++)
{
act=numeros[d];
arr=numeros[d+1];
if(act>arr)
{
numeros[d]=arr;
numeros[d+1]=act;
}}
}
//Se hace este ciclo para mostrar lo datos ordenados.
for(int elem=0;elem<=tam-1;elem++)
{
System.out.println(numeros[elem]);
} }}
if(vector[i]>mayor){
mayor = vector[i];
pos = i;
}
}
// se intercambian valores, el valor mayor encontrado se hubica en
// la ultima posicion del vector
aux = vector[elementos-1];
vector[elementos-1] = mayor;
vector[pos] = aux;
System.out.println("orden de ciclo : "+ Mostrar(vector));
//se resta en uno la cantidad de elementos
elementos--;
//se toma como valor mayor el ltimo elemento del vector
mayor = vector[elementos-1];
pos = elementos-1;
}
return vector;
}
//para imprimir el array de la forma | 0 | 1 | 2 | 3 | 4 |
public String Mostrar(int[] v){
String s=" | ";
for (int i=0; i < v.length; i++){
s += v[i] + " | ";
}
return s;
}
}
Referencias bibliogrficas: