Código de C sharp - Ordenar un array bidimensional - Método burbuja

Imágen de perfil

Ordenar un array bidimensional - Método burbujagráfica de visualizaciones


C sharp

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 11 de Enero del 2009 por Xavi
19.470 visualizaciones desde el 11 de Enero del 2009. Una media de 49 por semana
Ejemplo de ordenar un array bidimensional utilizando el método de la burbuja.

Versión 1
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 11 de Enero del 2009gráfica de visualizaciones de la versión: Versión 1
19.471 visualizaciones desde el 11 de Enero del 2009. Una media de 49 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// 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 (1)

LUIS FERNANDO GONZALEZ
28 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
Buen dia.

Muy buen ejemplo.

Me podrias decir como hago para hacer la comparación con variables tipo string en la linea:

if(originArray[j,0]<originArray[j+1,0])

El condicional genera un error en C#

Gracias por tu consejo.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s1752