Class Bubble
java.lang.Object
topics.sorting.bubble.Bubble
- All Implemented Interfaces:
SortingAlgorithm
Bubble Sort (Left-Bubbling)
Educational sorting implementation without early-termination optimizations. This specific variant iterates backwards, causing the smallest elements to "bubble" up to the beginning (left side) of the array with each pass.
Algorithm Steps
- Establish a boundary for the sorted portion at the beginning of the array.
- Start at the very end of the array and iterate backwards to the sorted boundary.
- Compare the current element with the element immediately before it.
- If they are out of order (previous > current), swap them.
- After each full pass, the absolute minimum of the unsorted portion is guaranteed to be placed at the sorted boundary.
- Repeat strictly
N-1times.
Complexity Analysis
- Time Complexity:
O(N²)strictly in all cases (Best, Average, and Worst) because the early-termination flag is deliberately omitted. - Space Complexity:
O(1)- Sorts entirely in-place. - Stability: Yes - Maintains relative order of equal elements.
- Author:
- vicegd
- See Also:
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
Bubble
public Bubble()
-
-
Method Details
-
sort
public void sort(int[] elements) Description copied from interface:SortingAlgorithmSorts the elements in-place silently.- Specified by:
sortin interfaceSortingAlgorithm- Parameters:
elements- The array of integers to be sorted.
-
sort
public void sort(int[] elements, boolean trace) Description copied from interface:SortingAlgorithmSorts the elements in-place, optionally emitting step-by-step traces to visualize the algorithmic progression.- Specified by:
sortin interfaceSortingAlgorithm- Parameters:
elements- The array of integers to be sorted.trace- Iftrue, logs the internal state during execution.
-