TheAlgorithms / Kotlin

All Algorithms implemented in Kotlin
MIT License
1.44k stars 374 forks source link

Added ShakerSort with tests #98

Open Kirill99M opened 1 year ago

Kirill99M commented 1 year ago

Added shaker sort

Sorting by mixing, also known as cocktail sort or shaker sort, is a variation of bubble sort that works by sorting the elements in both directions. Like bubble sort, sorting by mixing compares adjacent elements in the array and swaps them if they are in the wrong order. However, instead of only moving in one direction, sorting by mixing alternates moving from left to right and then from right to left through the array. This allows elements to "bubble up" or "bubble down" as needed in both directions, allowing for faster sorting in certain cases.

To begin, the first pass starts at the first element in the array and moves to the last element, swapping any adjacent elements that are in the wrong order. Then, the second pass starts at the last element in the array and moves to the first element, swapping any adjacent elements that are in the wrong order. These passes continue until no more swaps are made, indicating that the array is fully sorted.

Sorting by mixing is similar to bubble sort in terms of its simplicity and ease of implementation, but it can be more efficient in certain cases because it allows elements to move in both directions. However, like bubble sort, sorting by mixing has a worst-case time complexity of O(n^2), making it less efficient than more advanced sorting algorithms for larger arrays.