Sorting algorithms/Cocktail sort with shifting bounds: Difference between revisions
Sorting algorithms/Cocktail sort with shifting bounds (view source)
Revision as of 02:23, 3 April 2021
, 3 years agoAdded AutoHotkey
Alextretyak (talk | contribs) (Added 11l) |
Alpha bravo (talk | contribs) (Added AutoHotkey) |
||
Line 643:
</lang>
=={{header|AutoHotkey}}==
<lang AutoHotkey>cocktailShakerSort(A){
beginIdx := 1
endIdx := A.Count() - 1
while (beginIdx <= endIdx) {
newBeginIdx := endIdx
newEndIdx := beginIdx
ii := beginIdx
while (ii <= endIdx) {
if (A[ii] > A[ii + 1]) {
tempVal := A[ii], A[ii] := A[ii+1], A[ii+1] := tempVal
newEndIdx := ii
}
ii++
}
endIdx := newEndIdx - 1
ii := endIdx
while (ii >= beginIdx) {
if (A[ii] > A[ii + 1]) {
tempVal := A[ii], A[ii] := A[ii+1], A[ii+1] := tempVal
newBeginIdx := ii
}
ii--
}
beginIdx := newBeginIdx + 1
}
}</lang>
Examples:<lang AutoHotkey>A := [8,6,4,3,5,2,7,1]
cocktailShakerSort(A)
for k, v in A
output .= v ", "
MsgBox % "[" Trim(output, ", ") "]" ; show output</lang>
{{out}}
<pre>[1, 2, 3, 4, 5, 6, 7, 8]</pre>
=={{header|C}}==
<lang c>#include <stdio.h>
|