Código PHP:
var cont=0; var cambios=0;
function quickDeSort(objArray,ini,fin) {
var i=ini; var j=fin; var tmp;
cont++;
do {
tmp = objArray[i];
objArray[i] = objArray[j];
objArray[j] = tmp;
cambios++;
if ( i <= j ) { i++; j--; }
} while ( i <= j );
if ( ini < j ) quickDeSort(objArray,ini,j);
if ( i < fin ) quickDeSort(objArray,i,fin);
}
Bueno, yo queria saber, teniendo en principio un array (sabiendo entonces su length), cuantas veces se va a llamar la function quickDeSort y cuantos cambios se van a hacer, evidentemente, sin llamarla por primera vez. Es decir, anticiparme a los resultados de cont y cambios.
Esto es una chapucilla que he hecho para ver si lo sacaba, per o no lo he conseguido.
Código PHP:
arr=new Array(1,2);
var cont=0; var cambios=0;
function quickDeSort(objArray,ini,fin) {
var i=ini; var j=fin; var tmp;
cont++;
do {
tmp = objArray[i];
objArray[i] = objArray[j];
objArray[j] = tmp;
cambios++;
if ( i <= j ) { i++; j--; }
} while ( i <= j );
if ( ini < j ) quickDeSort(objArray,ini,j);
if ( i < fin ) quickDeSort(objArray,i,fin);
}
function estudiarSuc() {
cont=0; cambios=0;
arr.sort( new Function("x","y","return (x<y)?-1:(x>y)?1:0;") ); //ordenamos
arr[arr.length]=eval("Math.max("+arr+")+1"); //añadimos un elemento que sea como el mayor+1
quickDeSort(arr,0,arr.length-1); //desordenamos
document.write(arr.length+" elementos -> "+cont+" veces -> "+cambios+" cambios.<br>");
}
for(a=0;a<200;a++) estudiarSuc();
Pues eso, espero que quede claro, quiero saber el resultado de cont y cambios antes de llamar a la function sabiendo el length del array a tratar.
Echenme una mano quien sepa por favor
