Реализовать сортировку Хора — Pascal(Паскаль)

Uses crt;
type
 mas=array[1..100] of integer;
Var n,i:integer;
    mass:mas;
procedure quicks(first,last:integer;var m:mas);
var i,j,c,x,n:integer;
begin
  i:=first;
  j:=last;
  x:=m[(first+last) div 2]; {выбираем серединный эл-нт массива и делим массив пополам}
  repeat
    while m[i]>x do i:=i+1; {считываем всю левую часть до этого элемента}
    while x>m[j] do j:=j-1; {считываем всю правую часть до этого элемента}
    if i<=j then
     begin
       c:=m[i]; {Сортируем элементы массива}
       m[i]:=m[j];
       m[j]:=c;
       i:=i+1;
       j:=i-1;
     end;
   until i>j;
   if first<j then quicks(first,j,m);
   if i<last then quicks(i,last,m);
  end;
begin
clrscr;
 writeln ('vvedite kol-vo el-ov massiva ');
 Readln (n);
 for i:=1 to n do begin
 writeln ('vvedite ' ,i, 'element ');
 readln (mass[i]); end;
 writeln (' icxodnyi massiv ');
 for i:=1 to n do write (mass[i]:4);
 writeln;
 writeln (' COPTUPOBAHHbIi MASSIV ');
 quicks (1,n,mass);
 for i:=1 to n do write (mass[i]:3);
 Readln
end.

Leave a Comment

61 − = 58