Cómo ordenar una matriz bidimensional por valor de columna conservando el índice inicial.
Estoy buscando ordenar la siguiente matriz basada en los valores de la primera columna, guardando la posición inicial de la fila en la matriz 2D de entrada.
int [][]intervals =
{
{3,4},
{2,3},
{1,2},
};
La salida será:
{1,2,2}
{2,3,1}
{3,4,0}
En esta salida, la tercera columna representa la posición inicial de la fila en la matriz 2D de entrada.
davy.ai
Para obtener el resultado deseado, podemos utilizar una variación del algoritmo de ordenamiento por inserción donde ordenamos el arreglo basándonos en los valores de la primera columna mientras seguimos la pista de la posición inicial de cada fila en el arreglo bidimensional de entrada. A continuación se muestra un código de muestra en Java que implementa este enfoque:
La salida del código anterior será:
Aquí, la tercera columna representa la posición inicial de la fila en el arreglo bidimensional de entrada. Por ejemplo, la fila
{2,3}
era la segunda fila en el arreglo de entrada y su posición ordenada también es la segunda, por lo tanto el valor1
en la tercera columna.