Class DirectSelection
java.lang.Object
topics.sorting.selection.DirectSelection
- All Implemented Interfaces:
SortingAlgorithm
Direct Selection Sort
An educational sorting implementation that divides the input list into two parts: a sorted sublist built up from left to right, and a sublist of the remaining unsorted items. The algorithm proceeds by finding the smallest element in the unsorted sublist and swapping it with the leftmost unsorted element.
Complexity Analysis
- Time Complexity:
O(N²)strictly in all cases (Best, Average, Worst). It must always scan the entire remaining array to guarantee it has found the absolute minimum. - Space Complexity:
O(1)- Sorts entirely in-place. - Stability: No - Swapping non-adjacent elements across the array can change the relative order of equal elements.
- Author:
- vicegd
- See Also:
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
DirectSelection
public DirectSelection()
-
-
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.
-