Sorting algorithms/Bubble sort: Difference between revisions
Content added Content deleted
m (Fix bug) |
(Better implementation) |
||
Line 4,074: | Line 4,074: | ||
Original source: [http://seed7.sourceforge.net/algorith/sorting.htm#bubbleSort] |
Original source: [http://seed7.sourceforge.net/algorith/sorting.htm#bubbleSort] |
||
=={{header|Shen}}== |
=={{header|Shen}}== |
||
Bubble sort a vector in-place, using the < operator for comparison. |
|||
<lang shen>(tc +) |
<lang shen>(tc +) |
||
Line 4,112: | Line 4,113: | ||
(vector-> (value *arr*) 3 4) |
(vector-> (value *arr*) 3 4) |
||
(vector-> (value *arr*) 4 2) |
(vector-> (value *arr*) 4 2) |
||
(vector-> (value *arr*) 5 8) |
(vector-> (value *arr*) 5 8)</lang> |
||
(bubble-sort (value *arr*))</lang> |
<lang shen>(bubble-sort (value *arr*))</lang> |
||
Here is a more idiomatic implementation: |
|||
{{trans|Qi}} |
|||
<lang shen>(tc +) |
|||
(define bubble-shot |
|||
{ (vector number) --> (vector number) } |
|||
(@v A <>) -> (@v A <>) |
|||
(@v A B R) -> (@v B (bubble-shot (@v A R))) where (> A B) |
|||
(@v A R) -> (@v A (bubble-shot R))) |
|||
(define bubble-sort |
|||
{ (vector number) --> (vector number) } |
|||
X -> (fix (function bubble-shot) X))</lang> |
|||
<lang shen>(bubble-sort (@v 5 1 4 2 3 <>))</lang> |
|||
=={{header|Sidef}}== |
=={{header|Sidef}}== |