Muy buenas, estaba viendo uno de los ejemplos que tengo y no entiendo bien una cosilla en un método de ordenación sucesivo de menores. El ejemplo dice dado un array de 100 elementos ordenar de menor a mayor usando el método de ordenación sucesivo de menores.
Mi pregunta viene en el método de proc_intercambio
<ordenar>
Inicio
Tabla Tb(100)
<cargar_tabla>
<orde_sucesivo_de_menores>
<proc_intercambio>
Fin
<orde_sucesivo_de_menores>
Inicio
Para i desde 1 hasta 99
Min = Tb(i)
pos_ele = i
Para j desde j=i+1 hasta 100
Si min > Tb(j)
entonces
min = Tb(j)
pos_ele = j
Fin_si
Fin_para
<proc_intercambio>
Fin_para
Fin
<proc_intercambio>
Inicio
aux = Tb(i)
Tb(i) = Tb(pos_ele)
Tb(pos_ele) = aux
Fin
En este ultimo método tengo una duda, yo simplemente haría en la 2ª linea en vez de Tb(i) = Tb(pos_ele) pondría sin dudarlo Tb(i) = min pero ahora al ver la solución no entiendo si están las dos formas bien hechas o no.
¿Están bien las dos formas ? ¿ no ? ¿ Que diferencia tiene si esque hace cosas diferentes ?
Por lo que yo entiendo estaría simplemente metiendo en tb(i) el valor min cosa que es lo que quiero ya que se quedo guardado, de la otra forma creo qu elo que hace es lo mismo pero en vez de meter el valor le estoy diciendo una posición del array que contiene justamente el min creo o no...
Depende de cómo estés manejando el pseudocódigo pero en teoría sí, lo que vos decís también está bien.
El tema viene cuando utilices un lenguaje de programación "real". Debido a que una variable (como por ejemplo "min") no podrás usarla en el procedimiento correspondiente a menos que la pases por parámetro. (si te marea ésto, lee un poco por internet, pero tampoco te angusties porque veo que no le están dando importancia).
Como en este pseudocódigo parece que no le dan bola al ámbito de las variables (porque también estás usando "pos_ele" en el procedimiento), entonces te diría que es exactamente lo mismo lo que vos decís y lo que está plasmado en el code.
Pero te comento, el procedimiento "intercambio" lo vas a ver generalmente como está en el code!
Saludos!
Gracias!, ya veo lo que dices, en efecto creo que no le estamos haciendo mucho caso al ambito de las variables si desde cierto punto puedo acceder a otro, etc...
Gracias, me has resuelto la duda !