Start Typing !!! type the highlighted character. You can't scroll once you start typing.
filename

CocktailShakerSort.java

package Sorts;

/**

* @author Mateus Bizzo (https://github.com/MattBizzo)

* @author Podshivalov Nikita (https://github.com/nikitap492)

*/

class CocktailShakerSort implements SortAlgorithm {

/**

* This method implements the Generic Cocktail Shaker Sort

*

* @param array The array to be sorted

* Sorts the array in increasing order

**/

@Override

public <T extends Comparable<T>> T[] sort(T[] array) {

int length = array.length;

int left = 0;

int right = length - 1;

int swappedLeft, swappedRight;

while (left < right) {

// front

swappedRight = 0;

for (int i = left; i < right; i++) {

if (SortUtils.less(array[i + 1], array[i])) {

SortUtils.swap(array, i, i + 1);

swappedRight = i;

}

}

// back

right = swappedRight;

swappedLeft = length - 1;

for (int j = right; j > left; j--) {

if (SortUtils.less(array[j], array[j - 1])) {

SortUtils.swap(array, j - 1, j);

swappedLeft = j;

}

}

left = swappedLeft;

}

return array;

}

// Driver Program

public static void main(String[] args) {

// Integer Input

Integer[] integers = {4, 23, 6, 78, 1, 54, 231, 9, 12};

CocktailShakerSort shakerSort = new CocktailShakerSort();

// Output => 1 4 6 9 12 23 54 78 231

SortUtils.print(shakerSort.sort(integers));

// String Input

String[] strings = {"c", "a", "e", "b", "d"};

SortUtils.print(shakerSort.sort(strings));

}

}