uses crt; const n = 100; n_sorts = 3; type tm = array[1 .. n] of integer; tvector = array[1 .. n_sorts] of integer; tgist = array[1 .. 2] of tvector; const names: array[1 .. n_sorts] of string = ( ' VYBOR', 'PR_VKL', ' QUICK' ); procedure print_array(const a: tm); var i: integer; begin for i := 1 to n do write(a[i]:4); writeln; end; var data: tgist; function isGreater(a, b: integer; var srav: integer): boolean; begin inc(srav); isGreater := (a > b); end; procedure pr_vkl(var a: tm; var peres, srav: integer); var i, j, m, r: integer; begin peres := 0; srav := 0; for i := 2 to n do begin r := a[i]; j := i - 1; while (j >= 1) and (not isGreater(r, a[j], srav)) do begin a[j+1] := a[j]; Inc(Peres); dec(j); end; a[j+1] := r; end; print_array(a); writeln('Metod priamogo vklycheniia:'); writeln('Chislo perestanovok = ',peres); writeln('Chislo sravneniy = ',srav); readln; end; procedure vybor(var a: tm; var peres, srav: integer); var i, j, k, temp: integer; begin peres := 0; srav := 0; for i := 1 to n-1 do begin k := i; temp := a[i]; for j := i+1 to n do begin if not isGreater(a[j], temp, srav) then begin k := j; temp := a[j]; end; end; a[k] := a[i]; if k <> i then inc(peres); a[i] := temp; end; print_array(a); writeln('Metod VYBOR:'); writeln('Chislo perestanovok = ',peres); writeln('Chislo sravneniy = ',srav); readln; end; procedure quicksort(var a: tm; var peres, srav: integer); procedure hoars(var x: tm; l, u:integer); var i, j, T: integer; begin while u > l do begin i:=l; j:=u; t:=x[l]; while i