Cita:
Iniciado por IsaBelM tu consulta no tiene respuesta. contrapones dos códigos sin relación alguna. por un lado evalúas dos valores y por otro reordenas una matriz
en el primero de los casos, el uso de eval() no es que esté desaconsejado, como puedes leer en la gran cantidad de literatura que hay en la web sobre esta función, sino que no es necesario. para evaluar dos valores
buscándole tres pies al gato
Entiendo que en principio no se vea la relación entre los códigos... quizá obvié demasiado código.
Dejo el algoritmo que pretendo evaluar:
Código:
Array toSort; //array a ordenar, suponemos tiene datos (numéricos)
i = 0;
j = 0;
n = longitud(toSort);
de i=0 hasta n de 1 en 1
max = i
de j = i+1 hasta n de 1 en 1
si array(j) >= array(max)
max = j
fin
sigue
intercambia(array(i), array(max))
sigue
Esto ordenaría de mayor a menor (descendente). No obstante se podría querer ordenar es ascendente, por lo que se podría añadir un parámetro tal que:
Código:
orden = '>=';
si ascendente
orden = '<=';
fin
y luego evalular (eval()) la condición para obtener el orden deseado.
La contrapostura sería:
Código:
ordena
si ascendente
cambia_orden(array);
fin
Espero que ahora se vea más clara la contraposición de los dos códigos.
Saludos y gracias por contestar.