Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 1,151: | Line 1,151: | ||
on string : "qwerty" |
on string : "qwerty" |
||
with op = &null: "eqrtwy" (0 ms)</pre> |
with op = &null: "eqrtwy" (0 ms)</pre> |
||
=={{header|IS-BASIC}}== |
|||
<lang IS-BASIC>100 PROGRAM "CombSrt.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 COMBSORT(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 COMBSORT(REF A) |
|||
300 LET GAP=N:LET SW=1 |
|||
310 DO WHILE GAP>1 OR SW |
|||
320 LET GAP=MAX(INT(GAP/1.3),1) |
|||
330 LET SW=0 |
|||
340 FOR I=1 TO N-GAP |
|||
350 IF A(I)>A(I+GAP) THEN |
|||
360 LET T=A(I):LET A(I)=A(I+GAP):LET A(I+GAP)=T |
|||
370 LET SW=1 |
|||
380 END IF |
|||
390 NEXT |
|||
400 LOOP |
|||
410 END DEF</lang> |
|||
=={{header|J}}== |
=={{header|J}}== |