ordenar matrices nxn en c++

Iniciado por novato99, 5 Noviembre 2017, 19:13 PM

0 Miembros y 1 Visitante están viendo este tema.

novato99

hola soy un novato entrando a esto de la programacion C++ ya que me llamo mucho la atencion.

quisiera que me ayudaran con una matriz NxN en el cual introducimos desordenadamente los valores

ejm:         5   8   3    2
              20  7   6   10              esta seria la matriz introducida
               1  22   4    0      

luego quiero ordenarla de forma de culebra o zigzag  (depende como sea su nombre en su pais) pero invertida de la siguiente manera.


                               3     2     1     0 < (numero menor)
                           >  4     5     6     7
         (numero   >>  22   20   10    8 <
           mayor)      

agradeceria ayuda.

CalgaryCorpus

Sabes ordenar un arreglo unidimensional?
Sabes como invertir el orden de un arreglo unidimensional?

Si es asi, creo que lo unico que te falta es crear una funcion o 2 funciones que dado un indice en un arreglo unidimensional, lo convierta en 2 indices.

Y entonces, si tienes un algoritmo que diga
   swap( i, j )

con i y j indices de un arreglo unidimensional, lo hagas en la matriz 2d.

Una vez ordenado, pasas otra vez por el arreglo 2 dimensional e inviertes los sub arreglos pares (o impares, dependiendo de como cuentes).

Aqui mi perfil en LinkedIn, invitame un cafe aqui

novato99


MAFUS

Te diría que uses la función qsort para ordenar. Es un poco difícil de usar si eres nuevo en el lenguaje pues usa punteros a void y un puntero a función, pero no es muy complicada si buscas unos cuantos ejemplos y buscas documentación simplificada de ella.

Lo que podrías hacer es crear un puntero (de una dimensión) a la tabla y ordenarla mediante qsort de menor a mayor.

Una vez tienes la tabla ordenada usar de nuevo qsort, pasándole una función de orden inversa, vas ordenando las líneas impares de la tabla; las pares ya estarán ordenadas por el paso anterior.

Cuándo se termine ya tendrás la tabla ordenada según tu criterio.

pepitopepote