Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 1,153: | Line 1,153: | ||
=={{header|IS-BASIC}}== |
=={{header|IS-BASIC}}== |
||
<lang IS-BASIC>100 PROGRAM "CombSrt.bas" |
<lang IS-BASIC> 100 PROGRAM "CombSrt.bas" |
||
110 RANDOMIZE |
110 RANDOMIZE |
||
120 NUMERIC ARRAY(11 TO 30) |
|||
120 LET N=20 ! Number of elements |
|||
130 |
130 LET N=LBOUND(ARRAY)-UBOUND(ARRAY)+1 ! Number of elements |
||
140 CALL INIT(ARRAY) |
140 CALL INIT(ARRAY) |
||
150 CALL WRITE(ARRAY) |
150 CALL WRITE(ARRAY) |
||
Line 1,163: | Line 1,163: | ||
180 DEF INIT(REF A) |
180 DEF INIT(REF A) |
||
190 FOR I=LBOUND(A) TO UBOUND(A) |
190 FOR I=LBOUND(A) TO UBOUND(A) |
||
200 LET A(I)=RND( |
200 LET A(I)=RND(20)+1 |
||
210 NEXT |
210 NEXT |
||
220 END DEF |
220 END DEF |
||
Line 1,173: | Line 1,173: | ||
280 END DEF |
280 END DEF |
||
290 DEF COMBSORT(REF A) |
290 DEF COMBSORT(REF A) |
||
300 LET GAP= |
300 LET N,GAP=UBOUND(A):LET SW=1 |
||
310 DO WHILE GAP>1 OR SW |
310 DO WHILE GAP>1 OR SW |
||
320 LET GAP=MAX(INT(GAP/1.3),1) |
320 LET GAP=MAX(INT(GAP/1.3),1) |
||
330 LET SW=0 |
330 LET SW=0 |
||
340 FOR I= |
340 FOR I=LBOUND(A) TO N-GAP |
||
350 IF A(I)>A(I+GAP) THEN |
350 IF A(I)>A(I+GAP) THEN |
||
360 LET T=A(I):LET A(I)=A(I+GAP):LET A(I+GAP)=T |
360 LET T=A(I):LET A(I)=A(I+GAP):LET A(I+GAP)=T |
||
370 LET SW=1 |
370 LET SW=1 |
||
380 END IF |
380 END IF |
||
390 NEXT |
390 NEXT |
||
400 LOOP |
400 LOOP |