Guest User

Untitled

a guest
Oct 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.95 KB | None | 0 0
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.   SysUtils;
  7.  
  8. type vetor = array[1..10] of integer;
  9.  var
  10.  vet1,vet2,vet3 : vetor;
  11.  I: Integer;
  12.  
  13.  
  14.  procedure imprimir_vetor( var A: vetor; mensagem: string);
  15.  var i : integer;
  16.  begin
  17.  writeln(mensagem);
  18.  for I:=Low(A) to High(A) do
  19.   writeln(a[i]);
  20.   writeln('fim');
  21.  end;
  22.  
  23.  procedure QuickSort(var vet1: vetor; LimiteInferior, LimiteSuperior: Integer);
  24.  
  25.  
  26.  
  27.  var
  28.    i, j, pivo, T: Integer;
  29.  begin
  30.    i := limiteInferior;
  31.    j := limiteSuperior;
  32.   pivo := vet1[(j+i) div 2];
  33.    repeat
  34.      while vet1[i] < pivo do Inc(i);
  35.      while vet1[j] > pivo do Dec(j);
  36.      if i <= j then
  37.      begin
  38.        T := vet1[i];
  39.        vet1[i] := vet1[j];
  40.        vet1[j] := T;
  41.        Inc(i);
  42.        Dec(j);
  43.      end;
  44.    until i > j;
  45.    if j > limiteInferior then QuickSort(vet1, limiteinferior, j);
  46.    if i < limiteSuperior then QuickSort(vet1, i, limiteSuperior);
  47.  end;
  48.  
  49.  procedure BubbleSort (var vet2: vetor);
  50.  var I,J,aux: integer;
  51.  begin
  52.  for I:= High(vet2) downto 2 do
  53.   for  J:=1 to I-1 do
  54.     if vet2[J] > vet2[J+1] then
  55.     begin
  56.       aux := vet2[J];
  57.       vet2[J] := vet2[J+1];
  58.       vet2[J+1] := aux;
  59.     end;
  60.  end;
  61.  
  62.  procedure preencher_vetor(var A,B,C:vetor);
  63.  begin
  64.  randomize;
  65.  for I:=Low(vet1) to High(vet1) do
  66.   begin
  67.   vet1[I]:= Random(1000);
  68.   vet2[I]:= vet1[I] ;
  69.   vet3[I]:= vet1[I] ;
  70.  end;
  71.  end;
  72.  
  73.  procedure SelectionSort (var vet3: vetor);
  74. var k, j, i,aux,min :integer;
  75.  
  76. begin
  77.  
  78.   for i:= 1 to 6 do
  79.   begin
  80.   k := i + 1;
  81.   min := i;
  82.   for j := k  to 7 do
  83.   begin
  84.    if (vet3[j] < vet3[min]) then
  85.    min := j;
  86.    end;
  87.   aux := vet3[i];
  88.   vet3[i]:= vet3[min];
  89.   vet3[min] := aux;
  90.   end;
  91.   end;
  92.  
  93.  
  94.  
  95.  
  96. begin
  97.   preencher_vetor(vet1,vet2,vet3);
  98.   imprimir_vetor(vet3, 'Vetor desordenado:');
  99.   writeln;
  100.  // QuickSort(vet1, Low(vet1), High(vet1));
  101.   //BubbleSort(vet2);
  102.   SelectionSort(vet3);
  103.  
  104.  
  105.   imprimir_vetor(vet3, 'Vetor ordenado:');
  106.   readln;
  107. end.
Add Comment
Please, Sign In to add comment