Ver Mensaje Individual
  #37 (permalink)  
Antiguo 01/06/2006, 18:04
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 8 meses
Puntos: 2
Como??

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.