Sorting algorithms/Comb sort: Difference between revisions

Line 1,156:
110 RANDOMIZE
120 NUMERIC ARRAY(11 TO 30)
130 CALL INIT(ARRAY)
130 LET N=LBOUND(ARRAY)-UBOUND(ARRAY)+1 ! Number of elements
140 CALL INITWRITE(ARRAY)
150 CALL WRITECOMBSORT(ARRAY)
160 CALL COMBSORTWRITE(ARRAY)
170 CALLDEF WRITEINIT(ARRAYREF A)
180 DEF INIT FOR I=LBOUND(REFA) TO UBOUND(A)
190 FOR LET A(I)=LBOUNDRND(A) TO UBOUND(A20)+1
200 LET A(I)=RND(20)+1NEXT
210 END NEXTDEF
220 END DEF WRITE(REF A)
230 DEF WRITE FOR I=LBOUND(REFA) TO UBOUND(A)
240 FOR I=LBOUND(A) TOPRINT UBOUNDA(AI);
250 PRINT A(I);NEXT
260 NEXTPRINT
270 END PRINTDEF
280 END DEF COMBSORT(REF A)
290 LET N,GAP=UBOUND(A):LET SW=1
290 DEF COMBSORT(REF A)
300 LETDO WHILE N,GAP=UBOUND(A):LET>1 OR SW=1
310 DO WHILE LET GAP>=MAX(INT(GAP/1 OR SW.3),1)
320 LET GAPSW=MAX(INT(GAP/1.3),1)0
330 LETFOR SWI=0LBOUND(A) TO N-GAP
340 FOR I=LBOUND IF A(I)>A(I+GAP) TO N-GAPTHEN
350 IF LET T=A(I)>:LET A(I)=A(I+GAP):LET THENA(I+GAP)=T
360 LET TSW=A(I):LET A(I)=A(I+GAP):LET A(I+GAP)=T1
370 END LET SW=1IF
380 END IF NEXT
390 NEXTLOOP
400 END LOOPDEF</lang>
410 END DEF</lang>
 
=={{header|J}}==
Anonymous user