Metodo de ordenamiento por mezcla (merge sort)

pascal:
program Mezcla;
uses CRT;
Const
     largo = 5;
Type
      V2    =   Array[1..largo] of integer;
      v3    =   Array[1..largo+largo] of integer;
Var
   Vec,Vec2, Vec3               :       V2;
   VecFin                       :       v3;
   J,I,K,aux,con,h,x, ban       :       Integer;
   entro                        :       Boolean;

Procedure Llenar(vec:V2; Var vec2: v2);
          Begin
               For Con:=1 to largo do Vec[Con]:=Random(100);
               For Con:=1 to largo do Vec2[Con]:=Random(100);

          End;

Procedure Llenar2(vec:V2; Var vec2: v2);
          Begin
             vec[1]:=65;
              vec[2]:=70;
              vec[3]:=13;
              vec[4]:=82;
              vec[5]:=85;
              vec2:=vec;

          End;

Procedure Llenar3(vec:V2; Var vec2: v2);
          Begin
              vec[1]:=35;
              vec[2]:=44;
              vec[3]:=85;
              vec[4]:=17;
              vec[5]:=94;
              vec2:=vec;

          End;

Procedure Display(V:V2; hh:Integer);
          Begin
               For Con:=1 to largo do
                   Begin
                        If Ban <> 1 Then
                           Begin
                                GotoXY(hh,Con);Writeln(V[Con]);
                           End
                        Else
                            Begin
                                 GotoXY(hh,Con+largo+2);Writeln(V[Con]);
                            End;

                        Delay(100)
                   End;
          End;

Procedure Burbu(vec:v2; Var vec3: v2);
Begin
      For J:=1 to largo-1 do
         Begin
            entro:=false;
            For I:=1 to largo-1 do
                Begin
                   If Vec[I] > Vec[i+1] then
                     Begin
                       Aux:=Vec[i];
                       Vec[i]:=Vec[I+1];
                       Vec[I+1]:=Aux;
                       Entro:=True;
                       display(Vec,H);
                       h:=h+3;
                     End;
                End;
            If entro=False then J:=largo-1;
         End;
         Vec3:=vec;
End;

Procedure Intercalar(vec1:v2; vec2:v2; var vecres:v3);
Begin
     J:=1;
     K:=1;
     For I:=1 to largo+largo do
     Begin
        If vec1[J] <= vec2[K] then
        Begin
           vecres[I]:= vec1[J];
           J:=J+1;
           if J > largo then
              Begin
                   J:=largo;
                   vec1[J]:=vec2[J]
              End
        End
        else
        Begin
           vecres[I]:= vec2[K];
           K:=K+1;
           if k > largo then
              Begin
                   k:=largo;
                   vec2[k]:=vec1[k]
              End

        End;

     End;
     writeln;
End;

Procedure Desplegar(vecx:v3);
Begin
     For I:=1 to largo+largo do
         writeln (vecx[I]);

end;

{
Procedure Desplegar2(vecx:v2);
Begin
     For I:=1 to largo do
         writeln (vecx[I]);
     writeln;
end;
}



Begin
   Clrscr;
{   GotoXY(1,1);Writeln('Vectores 1 Y 2');}

   h:=1;
   Randomize;
   Llenar(vec,vec);
   Burbu(vec, vec2);

   h:= 1;
   Ban:= 1;
   Llenar(vec,vec);
   Burbu(vec,vec3);

{   Desplegar2 (vec2);
   Desplegar2 (vec3);
}

   Intercalar(vec2,vec3,vecfin);
   writeln ('Vector Resultado de la Mezcla');
   Desplegar (vecfin);

   Repeat Until Keypressed;
End.

2 Responses to “Metodo de ordenamiento por mezcla (merge sort)”

  1. jorge velasco Says:

    estaria muy buenos q alla mas comentarios sobre las lineas de programacion , si bien en estos casos son metodos estrictos de ordenamientos , por lo que no necesitan demaciados comentarios , pero hay algunos programadores que los nesecitamos , muy buena la pagina y denle para adelante , lastima que ya no se puede vender software hecho por uno sin tener titulo , ni siquiera distribuirlo..

    salu2

  2. admin Says:

    Hola Jorge.

    Se que comentar las línea sle solucionaría la vida a muchos, pero estas aplicaciones las cree cuando recién iniciaba en esto de la programación.

    :P

¿Ya le viste algún error? Dejanos tu correción ;-)

Antes de comentar: Gran parte de los ejercicios propuestos no tienen librerías debido a que Wordpress elimina los tags HTML. Si sabes/tienes/conoces las librerías que hacen falta, déjalo en los comentarios.

Otro punto antes de comentar, Si vas a sugerir un segmento de código en algún lenguaje debes hacerlo así:

De esta manera el código sale coloreado.

Otro punto importante para muchos que sienten que se les ignora: Todos los comentarios los reviso y en su debido momento los apruebo, pero ojo con el último párrafo.

Para poner los símbolos de las librerías sin que desaparezcan, debes escribir los símbolos de mayor > y menor qué < con su entidad HTML correspondiente, así como el símbolo de &

Mis Algoritmos se reserva el derecho de alterar, publicar o no los comentarios así como cambiar estas reglas de uso.

Si estas de acuerdo, adelante puedes comentar :)

P.D. No le hago tareas a nadie, mejor hagan la mía :P