He creado un hilo para que por favor me ayuden con un codigo que estoy programando, yo antes programaba en c++(cosas muy basicas) y estoy migrando al maravilloso mundo de Flash/AS3.
Necesito recorrer todos los Elementos que se encuentren en un Array Bidimensional y luego ordenarlos con el metodo de la burbuja, se que existe el motodo .sort ley sobre este metodo o funcion pero quiero lograrlo como he aprendido en c++ que es el metodo de la burbuja.
Aqui un ejemplo espero que les sirve a muchos.
Esto es una Array de una sola Dimension ( Creo ) no estoy muy segura, pero eso fue lo que ley, este ejemplo he ordenado los elementos de un Array de forma Descendente o ascendente solo hay que cambiar el
">" o "<" en el if de la comparación:
Código C++ :
var aux:Number = 0;
var n:Array;
n = [10,4,1,5,8,3,7,0,8,2,9,6,11,0,0,-1,12,-2,-3,-4];
trace("Original Array: " + n);
trace("-----------------------------");
for (var i:Number = 0; i<n.length; i++)
{
for (var j:Number = 0; j<n.length; j++)
{
if (n[j]>n[j+1])
{
aux = n[j];
n[j] = n[j+1];
n[j+1] = aux;
}
}
}
trace("-----------------------------");
trace("Array descendent: ");
for (var k:Number = 0; k<n.length; k++)
{
trace(n[k]);
}
for (var l:Number = 0; l<n.length; l++)
{
for (var m:Number = 0; m<n.length; m++)
{
if (n[m]<n[m+1])
{
aux = n[m];
n[m] = n[m+1];
n[m+1] = aux;
}
}
}
trace("-----------------------------");
trace("Array ordered ascending: ");
for (var o:Number = 0; o<n.length; o++)
{
trace(n[o]);
}
ahora lo quiero lograr con un array de 2 dimensiones aqui este mi code este no lo he podido lograr no entiendo como hacerlo por eso pido ayuda a los expertos.
Código C++ :
var n:Array;
var aux:Number = 0;
// Array
n =
[[2,1,3,4],
[5,8,6,7],
[8,9,0,-1]];
trace(" 0 1 2 3");
trace(" 0[x,x,x,x]");
trace(" 1[x,x,x,x]");
trace(" 2[x,x,x,x]");
trace("------------------------");
trace("-----Original Array-----");
for(var a:Number = 0; a<n.length; a++)
{
trace(" [" + n[a] + "]");
}
trace("------------------------");
trace("Size array: " + n.length);
trace("------------------------");
trace("Position of each element: ");
trace("Position 0,0:" + " " + n[0][0]);
trace("Position 0,1:" + " " + n[0][1]);
trace("Position 0,2:" + " " + n[0][2]);
trace("Position 0,3:" + " " + n[0][3]);
trace("Position 1,0:" + " " + n[1][0]);
trace("Position 1,1:" + " " + n[1][1]);
trace("Position 1,2:" + " " + n[1][2]);
trace("Position 1,3:" + " " + n[1][3]);
trace("Position 2,0:" + " " + n[2][0]);
trace("Position 2,1:" + " " + n[2][1]);
trace("Position 2,2:" + " " + n[2][2]);
trace("Position 2,3:" + " " + n[2][3]);
trace("------------------------");
trace(" ---Ordered array--- ");
for(var i:Number = 0; i<n.length; i++)
{
for(var j:Number = 0; j<n.length; j++)
{
for(var k:Number = 0; k<n.length; k++)
{
for(var l:Number = 0; l<n.length; l++)
{
if(n[i][j]>n[k][l])
{
aux = n[i][j];
n[i][j] = n[j][l];
n[k][l] = aux;
}
}
}
}
}
for(var q:Number = 0; q<n.length; q++)
{
for(var w:Number = 0; w<n.length; w++)
{
trace(n[q][w]);
}
}
un chico en internet me dijo que usara 2 for y el el segundo for que colocara el inidice como muestro aqui:
Código C++ :
for(var i:Number = 0; i<n.length; i++)
{
for(var j:Number = 0; j<n[i].length; j++)
{
if (n[i][j]>n[i][j+1])
{
// Burbuja aqui
}
}
}
si se dan cuenta el 2do for tiene el array como indicie i "n[i].length"
no entiendo porque me planteo eso no logro de entender, en fin
necesito ayuda con este array por favor ayúdenme a solucionar este problema que tengo actualmente muchas gracias y disculpen por quitarles su tiempo

