Pascal/Turbo Pascal - Ordenamiento por Metodo de Seleccion

 
Vista:

Ordenamiento por Metodo de Seleccion

Publicado por Jarod (3 intervenciones) el 21/11/2006 21:59:48
Como estan?
Necesito saber si alguien tiene algun codigo para ordenar datos por el metodo de Seleccion, y si es posible una breve explicacion... lo necesito para dar clase y tengo escasos dias para entender este metodo..
Gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ordenamiento por Metodo de Seleccion

Publicado por Carlos Guimaraenz (265 intervenciones) el 22/11/2006 05:46:29
Hola Jarod!! Si mal no recuerdo, el método de selección consiste en ir seleccionando, dentro de todo un vector, o lista, el valor mínimo o el máximo (siempre usa el mismo criterio) y ubicandolo en un extremo.
Supongamos que buscamos los mínimos, entonces, recorremos desde el principio hasta el último. Luego ubicamos el mínimo en el primer lugar, y ponemos el que estaba primero en su lugar. Repetimos esta búsqueda, pero comenzando en la segunda pasada por el 2º elemento, en la 3º pasada por el 3º elemento, y así hasta N - 1 (uno menos que la dimensión lógica del vector o lista).

Por ejemplo:

Original: 3-5-2-6-1-4
1º pasada: 1-5-2-6-3-4
2º pasada: 1-2-5-6-3-4
3º pasada: 1-2-3-6-5-4
4º pasada: 1-2-3-4-5-6

Si lo piensas bien el algoritmo, puedes cortar la búsqueda si encuentras que ya está ordenada... ésto puede optimizar el programa si son listas o vectores de muchos elementos.

Espero haberme hecho entender. Un abrazo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenamiento por Metodo de Seleccion

Publicado por Jarod (3 intervenciones) el 23/11/2006 17:33:16
hey! gracias.... ya vi tu post charlie y gracias .. ya le estoy entendiendo al algoritmo...

una pregunta, sabes donde puedo ubicar algun codigo de este metodo?... pk por mas que busco no encuentro mucho de este metodo, ni en los libros de mi escuela...

gracias!

saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenamiento por Metodo de Seleccion

Publicado por Carlos Guimaraenz (265 intervenciones) el 23/11/2006 18:38:32
Bueno, Jarod, puedes fijarte en www.driverop.com.ar la página de Diego Romero, en su sección Programación / Turbo Pascal, que tiene un ejemplo completo con métodos de ordenación donde figura el de Selección. Un abrazo grande!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenamiento por Metodo de Seleccion

Publicado por Jarod (3 intervenciones) el 23/11/2006 18:49:20
tssss!!!
es todo Charlie!!!
muchas gracias hermano!...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenamiento por Metodo de Seleccion

Publicado por tipo (1 intervención) el 05/12/2006 14:58:56
Program OrdenarSeleccion;
{Leer 10 Enteros. Ordena. Visualiza }
uses CRT,Chuchox;

Const
Limite=10;

Type
{ Lista = Array [1..Limite] of Integer;}
lista= v2;
Var
I, Num : 1..Limite;
A : Lista;
h : integer;

Function PosMayor (Ultimo:Integer; Var Tabla: Lista): Integer;
{Encuentra el indice del elemento mayor en la tabla [1..Ultimo]}
Var
Indice_Max, Indice : 1..Limite;

Begin
Indice_Max := 1;
For Indice := 2 To ultimo Do
If Tabla [Indice] > Tabla [Indice_Max]
Then Indice_Max := Indice;
PosMayor := Indice_Max
End;

PROCEDURE Seleccion (Limi: Integer; Var Tabla :lista);
Var
Aux, J, Mayor,h: Integer;
Begin
h:=1;
For J := Limi downto 2 do
Begin
{Encontrar el elemento mayor de 1..J}
Mayor := PosMayor (j, Tabla);
{Intercambio con el elemento tabla [J]}
Aux := Tabla [Mayor];
Tabla [Mayor] := Tabla [J];
Tabla [J] := Aux;
display (Tabla,h);
h:=h+3;
End;
End;

{programa principal}
Begin
clrscr;
{Writeln('uagua');}
For I := 1 To Limite Do
Begin
A [I] := Random (100);
{ Write (A[I] : 4);}
h:=1;
End;

{Writeln('uagua');}
Seleccion (Limite, A);
For I :=1 To Limite Do
{ Write ( A[I] : 4);}

Writeln;

Repeat Until Keypressed;

End.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ordenamiento por Metodo de Seleccion

Publicado por JOSE (1 intervención) el 01/04/2007 18:41:35
hola quisiera saber sorbe los metodo de ordenamiento este es mi correo [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar