Bueno, antes de empezar con los ordenamientos pondré rápidamente unos métodos sencillos para búsqueda de valores.
Buscar mayor elemento y su posición en el array.
Código Java:
Ver original
public void mayorElemento()
{
int pos = 0;
int mayor = array[0];
for(int i = 1; i < array.length; i++)
{
if (array[i] > mayor)
{
mayor = array[i];
pos = i;
}
}
}
Buscar menor elemento y su posición en el array.
Código Java:
Ver original
public void menorElemento()
{
int pos = 0;
int menor = array[0];
for(int i = 1; i < array.length; i++)
{
if (array[i] < menor)
{
menor = array[i];
pos = i;
}
}
}
Calcular la media del array y ver cuantos valores hay mayores y menores.
Código Java:
Ver original
public void media()
{
float media = 0;
int mayor = 0;
int menor = 0;
for(int i = 0; i < array.length; i++)
{
media = media + array[i];
}
media = media / array.length;
for(int i = 0; i < array.length; i++)
{
if (array[i] >= media)
{
mayor++;
}
else
{
menor++;
}
}
}
Ahora si los ordenamientos
Ordenamiento de tipo burbuja (Bubblesort)
Código Java:
Ver original
public void ordenamientoBurbuja()
{
int array[] = {7,2,0,9,8,1,3,5,6,4};
for(int i = 0; i < array.length; i++)
{
for (int j = i+1; j < array.length; j++)
{
if(array[j] < array[i])
{
int aux = array[i];
array[i] = array[j];
array[j] = aux;
}
}
}
}
Ordenamiento de burbuja bidireccional (bidirectional bubble sort o Cocktail sort)
Código Java:
Ver original
public void cocktailSort()
{
int izquierda;
int derecha;
int ultimo = array.length;
do
{
for(int i = array.length -1; i > 0; i--)
{
if(array[i-1] > array[i])
{
int aux = array[i];
array[i] = array[i-1];
array[i-1] = aux;
ultimo = i;
}
}
izquierda = ultimo +1;
for(int j = 1; j < array.length; j++)
{
if(array[j-1] > array[j])
{
int aux = array[j];
array[j] = array[j-1];
array[j-1] = aux;
ultimo = j;
}
}
derecha = ultimo -1;
}
while(derecha >= izquierda);
}
Ordenamiento por insercción (Insertion sort)
Código Java:
Ver original
public void ordenamientoInserccion()
{
int aux;
for (int i = 0; i < array.length; i++)
{
aux = array[i];
for (int j = i-1; j >= 0 && aux < array[j]; j--)
{
array[j+1] = array[j];
array[j] = aux;
}
}
}
Ordenamiento por selección (Selection sort)
Código Java:
Ver original
public void ordenamientoSeleccion()
{
for (int i = 0; i < array.length; i++)
{
int valorMinimo = array[i];
int indexMinimo = i;
for (int j = i+1; j < array.length; j++)
{
if (valorMinimo > array[j])
{
valorMinimo = array[j];
indexMinimo = j;
}
}
array[indexMinimo] = array[i];
array[i] = valorMinimo;
}
}
Ordenamiento shell (Shell sort)
Código Java:
Ver original
public void ordenamientoShell()
{
int incremento = array.length;
do
{
incremento = incremento / 2;
for (int i = 0; i < incremento; i++)
{
for (int j = incremento+i; j < array.length; j += incremento)
{
int k = j;
while (k - incremento >= 0 && array[k] < array[k - incremento])
{
int aux = array[k];
array[k] = array[k - incremento];
array[k - incremento] = aux;
k -= incremento;
}
}
}
}
while (incremento > 1);
}
Ordenamiento rápido (Quicksort)
Código Java:
 Ver original
public static void quicksort(int array[], int izquierda, int derecha)
{
int pivote = array[izquierda];
int i = izquierda;
int j = derecha;
int aux;
while(i < j)
{
while(array[i] <= pivote && i < j)
i++;
while(array[j] > pivote)
j--;
if (i < j)
{
aux = array[i];
array[i] = array[j];
array[j] = aux;
}
}
array[izquierda] = array[j];
array[j] = pivote;
if(izquierda < j-1)
quicksort(array, izquierda, j-1);
if(j+1 < derecha)
quicksort(array, j+1, derecha);
}
{
quicksort(array,0,array.length -1);
for(int i = 0; i < array.length; i++)
}
 
 



