init: repo
This commit is contained in:
75
open_set/52_chaos_token.pas
Normal file
75
open_set/52_chaos_token.pas
Normal file
@@ -0,0 +1,75 @@
|
||||
program CountingSort;
|
||||
|
||||
var
|
||||
n: integer;
|
||||
|
||||
|
||||
i, tmp:
|
||||
|
||||
integer;
|
||||
iniArr, sortedArr: array[0..9] of
|
||||
|
||||
integer;
|
||||
|
||||
function countingSort
|
||||
(n: integer): integer;
|
||||
var
|
||||
countArr: array[0..9] of integer;
|
||||
i, j, k, jj:
|
||||
integer
|
||||
;
|
||||
begin
|
||||
for k := 0
|
||||
to 9 do
|
||||
begin
|
||||
countArr[k
|
||||
] := 0;
|
||||
end;
|
||||
for i := 0 to n - 1 do
|
||||
begin
|
||||
countArr[
|
||||
|
||||
|
||||
iniArr[i]] :=
|
||||
countArr[iniArr[i]] +
|
||||
1;
|
||||
end;
|
||||
for k := 1 to 9 do
|
||||
begin
|
||||
countArr
|
||||
|
||||
[k] :=
|
||||
|
||||
countArr[k] + countArr[k - 1]; end;
|
||||
for jj := 0 to n-1 do
|
||||
begin j:=n-jj;countArr[iniArr[j - 1]] := countArr[iniArr[j - 1]] - 1; sortedArr[countArr[iniArr[j - 1]]] := iniArr[j - 1];
|
||||
end;
|
||||
countingSort := 0;
|
||||
end;
|
||||
|
||||
begin
|
||||
n := 10;
|
||||
iniArr[0] := 4;
|
||||
iniArr[1] := 3;
|
||||
iniArr[2] := 9;
|
||||
iniArr[3
|
||||
] := 2;
|
||||
iniArr[4] := 0;
|
||||
iniArr[
|
||||
5] := 1;
|
||||
iniArr[6] := 6;
|
||||
iniArr[ 7] := 5;
|
||||
iniArr[8] :=
|
||||
7;
|
||||
iniArr[9] := 8;
|
||||
|
||||
countingSort(
|
||||
n);
|
||||
|
||||
for i := 0 to n - 1 do
|
||||
begin
|
||||
tmp := sortedArr[i];
|
||||
write(tmp);
|
||||
|
||||
end;
|
||||
end.
|
||||
Reference in New Issue
Block a user