Class BidirectionalBubble

java.lang.Object
topics.sorting.bubble.BidirectionalBubble
All Implemented Interfaces:
SortingAlgorithm

public class BidirectionalBubble extends Object implements SortingAlgorithm

Bidirectional Bubble Sort (Cocktail Shaker Sort)

An educational variation of the standard Bubble Sort. Instead of repeatedly passing through the list from left to right, this algorithm alternates passes from left-to-right and then right-to-left. This bidirectional approach helps to rapidly mitigate the "turtle" problem in standard Bubble Sort, where small elements at the end of the list take a long time to move to the beginning.

Complexity Analysis

  • Time Complexity (Worst/Average): O(N²) - Still scales quadratically for heavily randomized or reversed arrays.
  • Time Complexity (Best): O(N) - Achieved via the early-termination sentinel if the array is already sorted.
  • Space Complexity: O(1) - Sorts entirely in-place.
  • Stability: Yes - Maintains the relative order of equal elements.
Author:
vicegd
See Also:
  • invalid reference
    topics.sorting.SortingAlgorithm
  • Constructor Details

    • BidirectionalBubble

      public BidirectionalBubble()
  • Method Details

    • sort

      public void sort(int[] elements)
      Description copied from interface: SortingAlgorithm
      Sorts the elements in-place.
      Specified by:
      sort in interface SortingAlgorithm
      Parameters:
      elements - The array of integers to be sorted.