42 lines
790 B
Plaintext
42 lines
790 B
Plaintext
function leq( n as integer, m as integer ) as boolean
|
|
if str(n)<=str(m) then return true else return false
|
|
end function
|
|
|
|
sub shellsort(s() as integer)
|
|
dim as integer n = ubound(s)
|
|
dim as integer i, inc = n
|
|
dim as boolean done
|
|
|
|
do
|
|
inc\=2.2
|
|
if inc = 0 then inc = 1
|
|
do
|
|
done = false
|
|
for i = 0 to n - inc
|
|
if leq(s(i+inc), s(i)) then
|
|
swap s(i), s(i + inc)
|
|
done = true
|
|
end if
|
|
next
|
|
loop until done = 0
|
|
loop until inc = 1
|
|
end sub
|
|
|
|
dim as integer n, i
|
|
|
|
input n
|
|
|
|
dim as integer s(0 to n-1)
|
|
for i = 0 to n-1
|
|
s(i) = i+1
|
|
next i
|
|
|
|
shellsort(s())
|
|
|
|
print "[";
|
|
for i = 0 to n-1
|
|
print s(i);
|
|
if i<n-1 then print ", ";
|
|
next i
|
|
print "]"
|