RosettaCodeData/Task/Sort-an-integer-array/S-BASIC/sort-an-integer-array.basic
2026-04-30 12:34:36 -04:00

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