Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
Line 1,156: | Line 1,156: | ||
110 RANDOMIZE |
110 RANDOMIZE |
||
120 NUMERIC ARRAY(11 TO 30) |
120 NUMERIC ARRAY(11 TO 30) |
||
130 CALL INIT(ARRAY) |
|||
130 LET N=LBOUND(ARRAY)-UBOUND(ARRAY)+1 ! Number of elements |
|||
140 CALL |
140 CALL WRITE(ARRAY) |
||
150 CALL |
150 CALL COMBSORT(ARRAY) |
||
160 CALL |
160 CALL WRITE(ARRAY) |
||
170 |
170 DEF INIT(REF A) |
||
180 |
180 FOR I=LBOUND(A) TO UBOUND(A) |
||
190 |
190 LET A(I)=RND(20)+1 |
||
200 |
200 NEXT |
||
210 |
210 END DEF |
||
220 |
220 DEF WRITE(REF A) |
||
230 |
230 FOR I=LBOUND(A) TO UBOUND(A) |
||
240 |
240 PRINT A(I); |
||
250 |
250 NEXT |
||
260 |
260 PRINT |
||
270 |
270 END DEF |
||
280 |
280 DEF COMBSORT(REF A) |
||
290 LET N,GAP=UBOUND(A):LET SW=1 |
|||
290 DEF COMBSORT(REF A) |
|||
300 |
300 DO WHILE GAP>1 OR SW |
||
310 |
310 LET GAP=MAX(INT(GAP/1.3),1) |
||
320 LET |
320 LET SW=0 |
||
330 |
330 FOR I=LBOUND(A) TO N-GAP |
||
340 |
340 IF A(I)>A(I+GAP) THEN |
||
350 |
350 LET T=A(I):LET A(I)=A(I+GAP):LET A(I+GAP)=T |
||
360 LET |
360 LET SW=1 |
||
370 |
370 END IF |
||
380 |
380 NEXT |
||
390 |
390 LOOP |
||
400 |
400 END DEF</lang> |
||
410 END DEF</lang> |
|||
=={{header|J}}== |
=={{header|J}}== |