Sorting algorithms/Bubble sort: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added a horizontal (output) version, optimized the bubble sort subroutines.) |
No edit summary |
||
Line 3,698: | Line 3,698: | ||
return arr |
return arr |
||
}</lang> |
}</lang> |
||
=={{header|Simula}}== |
|||
<lang simula>BEGIN |
|||
PROCEDURE BUBBLESORT(A); NAME A; INTEGER ARRAY A; |
|||
BEGIN |
|||
INTEGER LOW, HIGH, I; |
|||
BOOLEAN SWAPPED; |
|||
PROCEDURE SWAP(I, J); INTEGER I, J; |
|||
BEGIN |
|||
INTEGER TEMP; |
|||
TEMP := A(I); A(I) := A(J); A(J) := TEMP; |
|||
END**OF**SWAP; |
|||
LOW := LOWERBOUND(A, 1); |
|||
HIGH := UPPERBOUND(A, 1); |
|||
SWAPPED := TRUE; |
|||
WHILE SWAPPED DO |
|||
BEGIN |
|||
SWAPPED := FALSE; |
|||
FOR I := LOW + 1 STEP 1 UNTIL HIGH DO |
|||
BEGIN |
|||
COMMENT IF THIS PAIR IS OUT OF ORDER ; |
|||
IF A(I - 1) > A(I) THEN |
|||
BEGIN |
|||
COMMENT SWAP THEM AND REMEMBER SOMETHING CHANGED ; |
|||
SWAP(I - 1, I); |
|||
SWAPPED := TRUE; |
|||
END; |
|||
END; |
|||
END; |
|||
END**OF**BUBBLESORT; |
|||
INTEGER ARRAY A(1:10); |
|||
INTEGER I, N; |
|||
I := 1; |
|||
FOR N := 6, 8, 5, 9, 3, 2, 2, 1, 4, 7 DO |
|||
BEGIN |
|||
A(I) := N; I := I + 1; |
|||
END; |
|||
BUBBLESORT(A); |
|||
FOR I:= 1 STEP 1 UNTIL 10 DO |
|||
OUTINT(A(I), 5); |
|||
OUTIMAGE; |
|||
END;}</lang> |
|||
=={{header|Smalltalk}}== |
=={{header|Smalltalk}}== |