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}}==