Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,36 @@
|
|||
100 PROGRAM "ShellSrt.bas"
|
||||
110 RANDOMIZE
|
||||
120 LET N=20 ! Number of elements
|
||||
130 NUMERIC ARRAY(1 TO N)
|
||||
140 CALL INIT(ARRAY)
|
||||
150 CALL WRITE(ARRAY)
|
||||
160 CALL SHELLSORT(ARRAY)
|
||||
170 CALL WRITE(ARRAY)
|
||||
180 DEF INIT(REF A)
|
||||
190 FOR I=LBOUND(A) TO UBOUND(A)
|
||||
200 LET A(I)=RND(N)+1
|
||||
210 NEXT
|
||||
220 END DEF
|
||||
230 DEF WRITE(REF A)
|
||||
240 FOR I=LBOUND(A) TO UBOUND(A)
|
||||
250 PRINT A(I);
|
||||
260 NEXT
|
||||
270 PRINT
|
||||
280 END DEF
|
||||
290 DEF SHELLSORT(REF A)
|
||||
300 LET D=2^INT(LOG(N)/LOG(2))-1
|
||||
310 DO
|
||||
320 LET I=1
|
||||
330 DO WHILE I<=D AND I+D<=N
|
||||
340 FOR J=I+D TO N STEP D
|
||||
350 LET AH=A(J):LET BH=J-D
|
||||
360 DO WHILE BH>0 AND AH<A(BH)
|
||||
370 LET A(BH+D)=A(BH):LET BH=BH-D
|
||||
380 LOOP
|
||||
390 LET A(BH+D)=AH
|
||||
400 NEXT
|
||||
410 LET I=I+1
|
||||
420 LOOP
|
||||
430 LET D=INT(D/2)
|
||||
440 LOOP WHILE D>0
|
||||
450 END DEF
|
||||
Loading…
Add table
Add a link
Reference in a new issue