Ordenar un array bidimensional - Método burbuja
C sharp
Publicado el 11 de Enero del 2009 por Xavi (548 códigos)
26.622 visualizaciones desde el 11 de Enero del 2009
Ejemplo de ordenar un array bidimensional utilizando el método de la burbuja.
// Main.cs created with MonoDevelop
// User: xavi at 00:50 11/01/2009
//
// La Web del programador
// http://www.lawebdelprogramador.com
//
using System;
namespace arrayBidimensionalOrdenar
{
class MainClass
{
public static void Main(string[] args)
{
//Creamos un array bidimensional
int[,] nameArray=new int[5,2];
//Colocamos contenido
nameArray[0,0]=10;
nameArray[0,1]=0;
nameArray[1,0]=20;
nameArray[1,1]=1;
nameArray[2,0]=15;
nameArray[2,1]=2;
nameArray[3,0]=5;
nameArray[3,1]=3;
nameArray[4,0]=25;
nameArray[4,1]=4;
for (int i=0;i<(nameArray.Length/2);i++)
{
Console.Write (nameArray[i,0] + " - " + nameArray[i,1] + "
");
}
sortArrayBidi(ref nameArray);
Console.Write("----------------------------
");
for (int i=0;i<(nameArray.Length/2);i++)
{
Console.Write (nameArray[i,0] + " - " + nameArray[i,1] + "
");
}
}
// Metodo de la burbuja para ordenar un array bidimensional
public static void sortArrayBidi(ref int[,] originArray)
{
// Creamos un array temporal para almacenar el valor anterior
// para no perder el valor
int[,] tmp=new int[1,2] {{0,0}};
// Recorremos el array entero
for (int i=0;i<(originArray.Length/2);i++)
{
// Para cada valor de "i" recorremos el array entero
for (int j=0;j<(originArray.Length/2)-1;j++)
{
if(originArray[j,0]<originArray[j+1,0])
{
// Cogemos el valor actual y lo ponemos en el array temporal
tmp[0,0]=originArray[j,0];
tmp[0,1]=originArray[j,1];
// Reemplazamos el valor del array por el siguiente valor
originArray[j,0]=originArray[j+1,0];
originArray[j,1]=originArray[j+1,1];
// En el siguente valor, ponemos el temporal
originArray[j+1,0]=tmp[0,0];
originArray[j+1,1]=tmp[0,1];
}
}
}
}
}
}
Comentarios sobre la versión: Versión 1 (2)
Muy buen ejemplo.
Me podrias decir como hago para hacer la comparación con variables tipo string en la linea:
El condicional genera un error en C#
Gracias por tu consejo.
PLIS AYUDA :,V