Método para ordenar un array en Java

Mar :

He estado trabajando en un método que ordena una matriz de menor a mayor número. Me ocurrió con el código de abajo pero, como habrá adivinado, que no hace lo que yo esperaba.

La lógica que deseaba aplicar es la siguiente:

Dado que tengo una matriz, por ejemplo array {4,3,1,2,5} El código sería comparar, por ejemplo, array [0] (que sería cuatro en este caso) con cada elemento de la matriz,

array[0]>array[0] (4>4=false), 
array[0]>array[1] (4>3)= +1counter, 
array[0]>array[2] (4>1)= +1counter, 
array[0]>array[3] (4>2)= +1counter,
array[0]>array[4] (4>5=false)

counter = 3

Así que ya que el valor del contador es ahora 3, en la nueva matriz (array2, o arrayOrdered) número 4 sería en el tercer índice.

¿Cómo debo solucionarlo? Cualquier ayuda es más que apreciada!

public static int[] OrderArray(int[] array)
{

    int[] array2=new int[array.length];

    for (int i=0; i<array.length; i++)
    {
        int place=0;
        for (int j=0; j<array.length;j++)
        {
            if (array[i]> array[j])
            {
                place = place+1;
            }
            array2[place] = array[i];
        }

    }
    return array2;
}
Trevor Freeman:

Lo que se busca hacer se llama clasificación , y hay muchos algoritmos de clasificación conocidos con diferentes características se pueden utilizar para lograr lo que desea.

Usted puede leer acerca de muchos de los diferentes algoritmos de ordenación aquí: https://en.wikipedia.org/wiki/Sorting_algorithm

Java en sí ha construido en la clasificación de funcionalidad, y se puede ordenar una matriz utilizando el Arrays.sortmétodo, que utiliza una forma muy rápida y bien conocido ordenación rápida algoritmo para matrices de enteros.

Como otros comentaristas han discutido, el algoritmo de ordenación aparece viciado, y aparece en general a ser más parecido a una ordenación por inserción algoritmo, que es posible que desee considerar algunas ideas: https://en.wikipedia.org/wiki/Insertion_sort

itera ordenación por inserción, el consumo de un elemento de entrada de cada repetición, y hacer crecer una lista de salida ordenada. En cada iteración, la inserción elimina un elemento tipo de los datos de entrada, se encuentra el lugar al que pertenece dentro de la lista ordenada, y lo inserta allí. Se repite hasta que no queden elementos de entrada.

Pseudocódigo del foro:

i ← 1
while i < length(A)
    j ← i
    while j > 0 and A[j-1] > A[j]
        swap A[j] and A[j-1]
        j ← j - 1
    end while
    i ← i + 1
end while

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=317741&siteId=1
Recomendado
Clasificación