Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type p_vect = ^vect;
- vect = array[0..256] of integer;
- function join(u, w: p_vect): p_vect;
- var new: p_vect;
- j: byte;
- begin
- for j := 1 to u^[0] do
- begin
- new^[new^[0]] := u^[j];
- inc(new^[0])
- end;
- for j := u^[0] + 1 to w^[0] do
- begin
- new^[new^[0]] := w^[j];
- inc(new^[0])
- end;
- join := new
- end;
- function qsort(v: p_vect): p_vect;
- var pivot, j: byte;
- lo, hi: p_vect;
- begin
- if v^[0] <= 1 then
- qsort := v;
- randomize;
- pivot := random(v^[0] - 1) + 1;
- for j := 1 to v^[0] do
- begin
- if j = pivot then continue;
- if v^[j] <= v^[pivot] then
- begin
- lo^[lo^[0]] := v^[j];
- inc(lo^[0])
- end
- else
- begin
- hi^[hi^[0]] := v^[j];
- inc(hi^[0])
- end
- end;
- lo^[lo^[0]] := v^[pivot];
- inc(lo^[0]);
- qsort := join(lo, hi)
- end;
- var demo: p_vect;
- len, i: byte;
- t: integer;
- begin
- readln(len);
- demo^[0] := len;
- for i := 1 to len do
- begin
- readln(t);
- demo^[i] := t
- end;
- demo := qsort(demo);
- for i := 1 to len do
- writeln(demo^[i]);
- readln
- end.
Advertisement
Add Comment
Please, Sign In to add comment