Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure quickSort(var a : matx; row, left, right : integer);
- var p : integer;
- begin
- if left < right then begin
- p := partition(a, row, left, right); {якобы "неверное количество параметров функции}
- quickSort(a, row, left, p - 1);
- quickSort(a, row, p + 1, right);
- end;
- end;
- function partition(var a : matx; row, left, right : integer) : integer;
- var i, j, pivot : integer;
- begin
- pivot := a[row, right];
- i := left - 1;
- for j := left to right - 1 do begin
- if a[row, j] >= pivot then begin
- i := i +1;
- a[row, i] := a[row, i] + a[row, j];
- a[row, j] := a[row, i] - a[row, j];
- a[row, i] := a[row, i] - a[row, j];
- end;
- end;
- if a[row, right] >= a[row, i + 1] then begin
- a[row, i + 1] := a[row, i + 1] + a[row, right];
- a[row, right] := a[row, i + 1] - a[row, right];
- a[row, i + 1] := a[row, i + 1] - a[row, right];
- end;
- partition := i + 1
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement