Sorting algorithms/Insertion sort: Difference between revisions

Added BBC Basic and Cobol version of the insertion sort.
(Added BBC Basic and Cobol version of the insertion sort.)
Line 186:
next
End Sub</lang>
 
=={{header|BBC BASIC}}==
<lang BBCBASIC>DEF PROC_InsertionSort(Size%)
FOR I%=2 TO Size%
Temp%=data%(I%)
J%=I%
WHILE J%>1 AND Temp%<data%(J%-1)
data%(J%)=data%(J%-1)
J%=J%-1
ENDWHILE
IF J% <> I% data%(J%)=Temp%
NEXT I%
ENDPROC</lang>
 
=={{header|C}}==
Line 270 ⟶ 283:
;Returns: [1 2 3 4 5 6 7 8 9]</lang>
 
=={{header|COBOL}}==
This exerpt contains just enough of the procedure division to show the sort itself. The appropriate data division entries can be inferred. See also the entry for the Bubble sort for a full program.
<lang COBOL> C-PROCESS SECTION.
PERFORM E-INSERTION VARYING WB-IX-1 FROM 1 BY 1
UNTIL WB-IX-1 > WC-SIZE.
 
...
 
E-INSERTION SECTION.
E-000.
MOVE WB-ENTRY(WB-IX-1) TO WC-TEMP.
SET WB-IX-2 TO WB-IX-1.
 
PERFORM F-PASS UNTIL WB-IX-2 NOT > 1 OR
WC-TEMP NOT < WB-ENTRY(WB-IX-2 - 1).
 
IF WB-IX-1 NOT = WB-IX-2
MOVE WC-TEMP TO WB-ENTRY(WB-IX-2).
 
E-999.
EXIT.
 
F-PASS SECTION.
F-000.
MOVE WB-ENTRY(WB-IX-2 - 1) TO WB-ENTRY(WB-IX-2).
SET WB-IX-2 DOWN BY 1.
 
F-999.
EXIT.</lang>
=={{header|Common Lisp}}==
<lang lisp>(defun span (predicate list)
Anonymous user