Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program project1;
- {$R+}
- uses sysutils;
- var
- n, l, c, t, p, i: integer;
- arr, B: array of dword;
- D: array [0..255] of integer;
- procedure LSD(max_length: dword; n: integer);
- var l, i, j: integer;
- begin
- for j := 0 to 3 do begin
- for i := 0 to 255 do begin
- D[i] := 0;
- end;
- for i := 0 to n - 1 do begin
- c := (arr[i] shr (j*8)) and $FF;
- D[c] += 1;
- end;
- t := 0;
- for c := 0 to 255 do begin
- p := t + D[c];
- D[c] := t;
- t := p;
- end;
- for i := 0 to n - 1 do begin
- c := (arr[i] shr (j*8)) and $FF;
- p := D[c];
- B[p] := arr[i];
- D[c] := p + 1;
- end;
- for i := 0 to n - 1 do begin
- arr[i] := B[i];
- end;
- end;
- end;
- function Max_length(n: integer): dword;
- var l: dword;
- k: dword;
- i: integer;
- begin
- k := arr[0];
- l := 0;
- while (k > 1) do begin
- k := k div 255;
- l += 1;
- end;
- result := l;
- for i := 1 to n - 1 do begin
- k := arr[i];
- l := 0;
- while (k > 1) do begin
- k := k div 255;
- l += 1;
- end;
- if (l > result) then begin
- result := l;
- end;
- end;
- end;
- begin
- //assign(input, 'input.txt');
- //assign(output, 'output.txt');
- //reset(input);
- //rewrite(output);
- //read(n);
- n := 1000000;
- SetLength(arr, n);
- SetLength(B, n);
- for i := 0 to n - 1 do begin
- arr[i] := random(1000000);
- end;
- //for i := 0 to n - 1 do begin
- // read(arr[i]);
- //end;
- //l := Max_length(n);
- LSD(l, n);
- for i := 0 to length(arr) - 1 do begin
- writeln(arr[i]);
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement