Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -1,61 +1,83 @@
class
BEAD_SORT
feature
bead_sort(ar: ARRAY[INTEGER]): ARRAY[INTEGER]
bead_sort (ar: ARRAY [INTEGER]): ARRAY [INTEGER]
-- Sorted array in descending order.
require
only_positive_integers: across ar as a all a.item > 0 end
local
max, count, i, j, k: INTEGER
sorted: ARRAY[INTEGER]
do
max:= max_item(ar)
create sorted.make_filled(0,1, ar.count)
max := max_item (ar)
create Result.make_filled (0, 1, ar.count)
from
i:= 1
i := 1
until
i> max
i > max
loop
count:= 0
count := 0
from
k:= 1
k := 1
until
k> ar.count
k > ar.count
loop
if ar.item (k) >= i then
count:= count+1
count := count + 1
end
k:= k+1
k := k + 1
end
from
j:= 1
j := 1
until
j>count
j > count
loop
sorted[j]:= i
j:= j+1
Result [j] := i
j := j + 1
end
i:= i+1
i := i + 1
end
RESULT:= sorted
end
feature{NONE}
max_item(ar: ARRAY [INTEGER]):INTEGER
require
ar_not_void: ar/= Void
local
i, max: INTEGER
do
from
i:=1
until
i > ar.count
loop
if ar.item(i) > max then
max := ar.item(i)
end
i := i + 1
end
Result := max
ensure
result_is_set: Result /= Void
end
array_is_sorted: is_sorted (Result)
end
feature {NONE}
max_item (ar: ARRAY [INTEGER]): INTEGER
-- Max item of 'ar'.
require
ar_not_void: ar /= Void
do
across
ar as a
loop
if a.item > Result then
Result := a.item
end
end
ensure
Result_is_max: across ar as a all a.item <= Result end
end
is_sorted (ar: ARRAY [INTEGER]): BOOLEAN
--- Is 'ar' sorted in descending order?
require
ar_not_empty: ar.is_empty = False
local
i: INTEGER
do
Result := True
from
i := ar.lower
until
i = ar.upper
loop
if ar [i] < ar [i + 1] then
Result := False
end
i := i + 1
end
end
end

View file

@ -1,20 +1,32 @@
class
APPLICATION
inherit
ARGUMENTS
create
make
make
feature
make
do
test:= <<1, 5, 99, 2, 95, 7, 7>>
create beadsort
io.put_string ("unsorted:"+"%N")
across test as ar loop io.put_string(ar.item.out + "%T") end
io.put_string ("%N"+"sorted:"+"%N")
test:= beadsort.bead_sort (test)
across test as ar loop io.put_string(ar.item.out + "%T") end
end
beadsort: BEAD_SORT
test: ARRAY[INTEGER]
make
do
test := <<1, 5, 99, 2, 95, 7, 7>>
create beadsort
io.put_string ("unsorted:" + "%N")
across
test as ar
loop
io.put_string (ar.item.out + "%T")
end
io.put_string ("%N" + "sorted:" + "%N")
test := beadsort.bead_sort (test)
across
test as ar
loop
io.put_string (ar.item.out + "%T")
end
end
beadsort: BEAD_SORT
test: ARRAY [INTEGER]
end