Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,39 @@
|
|||
$ include "seed7_05.s7i";
|
||||
|
||||
const proc: beadSort (inout array integer: a) is func
|
||||
local
|
||||
var integer: max is 0;
|
||||
var integer: sum is 0;
|
||||
var array bitset: beads is 0 times {};
|
||||
var integer: i is 0;
|
||||
var integer: j is 0;
|
||||
begin
|
||||
beads := length(a) times {};
|
||||
for i range 1 to length(a) do
|
||||
if a[i] > max then
|
||||
max := a[i];
|
||||
end if;
|
||||
beads[i] := {1 .. a[i]};
|
||||
end for;
|
||||
for j range 1 to max do
|
||||
sum := 0;
|
||||
for i range 1 to length(a) do
|
||||
sum +:= ord(j in beads[i]);
|
||||
end for;
|
||||
for i range length(a) downto length(a) - sum + 1 do
|
||||
a[i] := j;
|
||||
end for;
|
||||
end for;
|
||||
end func;
|
||||
|
||||
const proc: main is func
|
||||
local
|
||||
var array integer: a is [] (5, 3, 1, 7, 4, 1, 1, 20);
|
||||
var integer: n is 0;
|
||||
begin
|
||||
beadSort(a);
|
||||
for n range a do
|
||||
write(n <& " ");
|
||||
end for;
|
||||
writeln;
|
||||
end func;
|
||||
Loading…
Add table
Add a link
Reference in a new issue