RosettaCodeData/Task/Sorting-algorithms-Cocktail.../00-TASK.txt

34 lines
1.4 KiB
Plaintext

{{Sorting Algorithm}}
[[Category:Sorting]]
{{Wikipedia|Cocktail sort}}
The cocktail shaker sort is an improvement on the [[Bubble Sort]].
The improvement is basically that values "bubble" both directions through the array, because on each iteration the cocktail shaker sort bubble sorts once forwards and once backwards. Pseudocode for the algorithm (from [[wp:Cocktail sort|wikipedia]]):
'''function''' ''cocktailSort''( A : list of sortable items )
'''do'''
swapped := false
'''for each''' i '''in''' 0 '''to''' length( A ) - 2 '''do'''
'''if''' A[ i ] > A[ i+1 ] '''then''' ''// test whether the two''
''// elements are in the wrong''
''// order''
swap( A[ i ], A[ i+1 ] ) ''// let the two elements''
''// change places''
swapped := true;
'''if''' swapped = false '''then'''
''// we can exit the outer loop here if no swaps occurred.''
'''break do-while loop''';
swapped := false
'''for each''' i '''in''' length( A ) - 2 '''down to''' 0 '''do'''
'''if''' A[ i ] > A[ i+1 ] '''then'''
swap( A[ i ], A[ i+1 ] )
swapped := true;
'''while''' swapped; ''// if no elements have been swapped,''
''// then the list is sorted''
;Related task:
:*   [https://rosettacode.org/wiki/Sorting_algorithms/Cocktail_sort_with_shifting_bounds cocktail sort with shifting bounds]
<br><br>