SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: maicor en Jueves 15 de Mayo de 2008, 17:18

Título: Ordenar Matriz Bidimensional
Publicado por: maicor en Jueves 15 de Mayo de 2008, 17:18
como hago para ordenar una matriz bidimensional d 3x3 ordenar sus filas
ej:..............................................................................................
 3 1 2....y q m quede...1 2 3
 7 9 8.........asi............7 8 9
 6 4 5.........................4 5 6
Título: Re: Ordenar Matriz Bidimensional
Publicado por: ProfesorX en Jueves 15 de Mayo de 2008, 18:39
Hay muchas formas de hacerlo, pero la que yo haria, seria pasar el contenido de la fila de la matriz a un vector, ordenar el vector, y regresar el contenido ordenado del vector a la fila de la matriz.
Título: Re: Ordenar Matriz Bidimensional
Publicado por: maicor en Jueves 15 de Mayo de 2008, 19:29
Algun ejemplo?????
Título: Re: Ordenar Matriz Bidimensional
Publicado por: maicor en Viernes 23 de Mayo de 2008, 20:18
alguien puede ayudarme a ordenar una matriz cuadrada d 3x3. Necesito un ejemplo una guia de como hacerlo en c#
Título: Re: Ordenar Matriz Bidimensional
Publicado por: daniel44 en Sábado 24 de Mayo de 2008, 00:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OrderArray
{
    class Program
    {
        static void llenar(int[,] matriz)
        {
            int i, j;
            Random generarNumeros = new Random();
            for(i=0;i<matriz.GetLength(0);i++)
            {
                for (j = 0; j < matriz.GetLength(1); j++)
                {
                    matriz[i, j] = generarNumeros.Next(0,10);
                }
            }
            for (i = 0; i < 3; i++)
            {
                for (j = 0; j < 3; j++)
                {
                    Console.Write(matriz[i, j]+" ");
                }
                Console.WriteLine();
            }
        }

        static void ordenar(int[,] matriz)
        {
            int i, j, k, l, temp;
            for (k = 1; k <= 3; k++)
            {
                for (l = 0; l < 3; l++)
                    for (i = 0; i < 3; i++)
                        for (j = 0; j < 2; j++)
                            if (matriz[i,j] > matriz[i,j + 1])
                            {
                                temp = matriz[i,j];
                                matriz[i,j] = matriz[i,j + 1];
                                matriz[i,j + 1] = temp;
                            }
            }
            Console.WriteLine("\n\nMatriz Ordenada");
            for (i = 0; i < 3; i++)
            {
                for (j = 0; j < 3; j++)
                {
                    Console.Write(matriz[i, j]+" ");
                }
                Console.WriteLine();
            }
        }

        static void Main(string[] args)
        {
            int[,] matriz = new int[3, 3];
            llenar(matriz);
            ordenar(matriz);
            Console.ReadLine();
        }
    }
}
Título: Re: Ordenar Matriz Bidimensional
Publicado por: mx_latino en Martes 3 de Junio de 2008, 16:51
Compadre he revisado tu código y me he permitido hacer un par de cambios por allí...  :P   , En fin aquí lo dejo espero te sirva maicor...

Saludos...  :comp:
Título: Re: Ordenar Matriz Bidimensional
Publicado por: sub7 en Miércoles 27 de Octubre de 2010, 10:09
Buenas

Yo lo he hecho para que te ordene por la columna que tu quieras de la tabla.
En vez de ordenarte toda la tabla, si tu solo la quieres ordenar por un campo en concreto de la tabla.

Aquí os dejo el código:
Código: Java
  1.  
  2.     public static void ordenarTDoble(int t[][]){
  3.         int aux = 0, col;
  4.  
  5.         System.out.println("¿Qué columna quieres ordenar?: ");
  6.         col = Entrada.entero();
  7.  
  8.         for (int k = 0; k < t.length; k++) {
  9.             for (int i = 0; i < t.length-1; i++) {
  10.                 for (int j = 0; j < t.length-1-i; j++) {
  11.                     if (t[i][col] > t[i+1][col]){
  12.                         for (int l = 0; l < t.length; l++) {
  13.                             aux = t[i][l];
  14.                             t[i][l] = t[i+1][l];
  15.                             t[i+1][l] = aux;
  16.                         }
  17.                     }
  18.                 }
  19.             }
  20.         }
  21.        
  22.     }
  23.  
  24.  

Espero que le sea a alguien util,
un saludo.