Sorting algorithms/Bubble sort: Difference between revisions
m
moved ZX
m (little change in code) |
m (moved ZX) |
||
Line 561:
-31 0 1 2 2 4 65 83 99 782
</pre>
=={{header| zx spectrum basic}}==▼
5002 LET a$="": FOR f=1 TO 64: LET a$=a$+CHR$ (32+INT (RND*96)): NEXT f▼
5004 PRINT a$; AT 10,0;"ZigZag BubbleSORT"▼
5010 LET la=LEN a$▼
5011 LET i=1: LET u=0▼
5020 LET d=0: LET p=(u=0)-(u=1)▼
5021 LET l=(i AND u=0)+(la-i+u AND u=1)▼
5030 IF u=0 THEN IF a$(l+1)>=a$(l) THEN GO TO 5050▼
5031 IF u=1 THEN IF a$(l-1)<=a$(l) THEN GO TO 5050▼
5040 LET d=1▼
5042 LET t$=a$(l+p)▼
5043 LET a$(l+p)=a$(l)▼
5044 LET a$(l)=t$▼
5050 LET l=l+p▼
5051 PRINT AT 10,21;a$(l);AT 12,0;a$▼
5055 IF l<=la-i AND l>=i THEN GO TO 5023▼
5061 LET i=i+NOT u▼
5063 LET u=NOT u▼
5064 IF d AND i<la THEN GO TO 5020▼
5072 PRINT AT 12,0;a$▼
9000 STOP ▼
=={{header|C}}==
Line 4,255 ⟶ 4,230:
} while(hasChanged);
}</lang>
<lang zxbasic>5000 CLS
▲5002 LET a$="": FOR f=1 TO 64: LET a$=a$+CHR$ (32+INT (RND*96)): NEXT f
▲5004 PRINT a$; AT 10,0;"ZigZag BubbleSORT"
▲5010 LET la=LEN a$
▲5011 LET i=1: LET u=0
▲5020 LET d=0: LET p=(u=0)-(u=1)
▲5021 LET l=(i AND u=0)+(la-i+u AND u=1)
▲5030 IF u=0 THEN IF a$(l+1)>=a$(l) THEN GO TO 5050
▲5031 IF u=1 THEN IF a$(l-1)<=a$(l) THEN GO TO 5050
▲5040 LET d=1
▲5042 LET t$=a$(l+p)
▲5043 LET a$(l+p)=a$(l)
▲5044 LET a$(l)=t$
▲5050 LET l=l+p
▲5051 PRINT AT 10,21;a$(l);AT 12,0;a$
▲5055 IF l<=la-i AND l>=i THEN GO TO 5023
▲5061 LET i=i+NOT u
▲5063 LET u=NOT u
▲5064 IF d AND i<la THEN GO TO 5020
▲5072 PRINT AT 12,0;a$
▲9000 STOP </lang>
{{omit from|GUISS}}
|