Sorting algorithms/Cocktail sort with shifting bounds: Difference between revisions

Sorting algorithms/Cocktail sort with shifting bounds en FreeBASIC
(Sorting algorithms/Cocktail sort with shifting bounds en FreeBASIC)
Line 851:
after: -6 0 1 2 3 4 5 12 13 15
</pre>
 
 
=={{header|FreeBASIC}}==
{{trans|VBA}}
<lang freebasic>
Sub cocktailShakerSort(bs() As Long)
Dim As Long i, lb = Lbound(bs), ub = Ubound(bs) -1
Dim As Long newlb, newub, tmp
Do While lb <= ub
newlb = ub
newub = lb
For i = lb To ub
If bs(i) > bs(i + 1) Then
tmp = bs(i): bs(i) = bs(i + 1): bs(i + 1) = tmp
newub = i
End If
Next i
ub = newub - 1
For i = ub To lb Step -1
If bs(i) > bs(i + 1) Then
tmp = bs(i): bs(i) = bs(i + 1): bs(i + 1) = tmp
newlb = i
End If
Next i
lb = newlb + 1
Loop
End Sub
 
'--- Programa Principal ---
Dim As Long i, array(-7 To 7)
Dim As Long a = Lbound(array), b = Ubound(array)
 
Randomize Timer
For i = a To b : array(i) = i : Next i
For i = a To b
Swap array(i), array(Int(Rnd * (b - a + 1)) + a)
Next i
 
Print "unsort ";
For i = a To b : Print Using "####"; array(i); : Next i
 
cocktailShakerSort(array()) ' ordenar el array
 
Print !"\n sort ";
For i = a To b : Print Using "####"; array(i); : Next i
 
Print !"\n--- terminado, pulsa RETURN---"
Sleep
</lang>
{{out}}
<pre>
unsort -4 0 5 -7 -2 4 3 -5 -1 7 2 1 6 -3 -6
sort -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
</pre>
 
 
=={{header|Go}}==
2,169

edits