46 lines
887 B
Text
46 lines
887 B
Text
$constant ARRAY_SIZE = 10
|
|
var i, j, k, gap, temp = integer
|
|
dim integer numbers(ARRAY_SIZE)
|
|
|
|
comment
|
|
populate array with random integers in
|
|
range 1..100
|
|
end
|
|
print "Unsorted:";
|
|
for i=1 to ARRAY_SIZE
|
|
numbers(i) = int(rnd(1) * 100)+1)
|
|
print numbers(i);
|
|
next i
|
|
print
|
|
|
|
rem put in ascending order using Shell sort
|
|
gap = ARRAY_SIZE / 2
|
|
while gap > 0 do
|
|
begin
|
|
for i = gap+1 to ARRAY_SIZE
|
|
j = i - gap
|
|
while j > 0 do
|
|
begin
|
|
k = j + gap
|
|
if numbers(j) <= numbers(k) then
|
|
j = 0
|
|
else
|
|
begin
|
|
temp = numbers(j)
|
|
numbers(j) = numbers(k)
|
|
numbers(k) = temp
|
|
end
|
|
j = j - gap
|
|
end while
|
|
next i
|
|
gap = gap / 2
|
|
end while
|
|
|
|
rem show result
|
|
print "Sorted :";
|
|
for i = 1 to ARRAY_SIZE
|
|
print numbers(i);
|
|
next i
|
|
print
|
|
|
|
end
|