Cita:
Iniciado por Cristus bueno la verdad no lo conosco tampoco entiendo para que el ary.length sirve... a mi parecer es un chancado =/ o un cambio de posiciones :( pero eso de fin ? y ar.length pos no se para que van... te lo agradeceria si me lo detallas ;) gracias
salu!
Vamos se claro, deplano no sabes nada de programacion, ,verdad?
lo que estoy usando es un seudocodigo, muy similar al BASIC.
son 2 bucles el j y el i.
el j itera desde 0 asta el ultimo indice del array (ary.length = largo del array).
el i itera desde j asta el ultimo indice del array(ary.length = largo del array).
i se encarga de ir recorriendo el valor mayor por todo el array asta encontrar un numero mayor a el.
j se encarga de pasar por todas las posiciones del array.
ejemplo:
array = 5-1-2-3-4
j iterara de 0 a 4.
i iterara de j a 4.
j = 0;
i = 0;
array = 5-1-2-3-4
j = 0;
i = 1;
array = 1-5-2-3-4
j = 0;
i = 2;
array = 1-2-5-3-4
j = 0;
i = 3;
array = 1-2-3-5-4
j = 0;
i = 4;
array = 1-2-3-4-5
j = 1;
i = 1;
//No pasa nada ya esta ordenado.
j = 1;
i = 2;
//No pasa nada ya esta ordenado.
j = 1;
i = 3;
//No pasa nada ya esta ordenado.
j = 1;
i = 4;
//No pasa nada ya esta ordenado.
j = 2;
i = 2;
//No pasa nada ya esta ordenado.
etc.
SI te fijas i no siempre empieza de 0 esto evita recorrer toda la matriz.
ya que se supone que las primeras pociciones asta j ya se ordenaron.
la optra opcion es usando la funcion intercambiar(a, b)
contar j = 0 a ary.len
contar i = j a ary.len
si ary[i] > ary[i+1] entonces
intercambiar(ary[i], ary[i+1])
fin si
fin i
fin j
la funcion seria:
intercambiar(a, b)
{
temp = a;
a = b;
b = temp;
}
en realidad es super sencillo este algoritmo, que seria si te pusieran el de ordenacion por seleccion, o el de ordenamiento rapido.
ahi te dejo eso. Saludos.