Class HeapSortStrategy
java.lang.Object
com.github.rlacher.sortbench.strategies.implementations.HeapSortStrategy
- All Implemented Interfaces:
SortStrategy
Implements the heap sort algorithm as a sorting strategy.
This class implements the SortStrategy interface and provides a method
to perform heap sort on an array of integers.
-
Constructor Summary
ConstructorsConstructorDescriptionHeapSortStrategy(Benchmarker benchmarker) Constructor for theHeapSortStrategyclass. -
Method Summary
Modifier and TypeMethodDescriptionsort(int[] array) Sorts the provided array in ascending order using the heap sort algorithm.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.github.rlacher.sortbench.strategies.SortStrategy
name, swap
-
Constructor Details
-
HeapSortStrategy
Constructor for theHeapSortStrategyclass.- Parameters:
benchmarker- The benchmarker to be used for profiling.- Throws:
IllegalArgumentException- If the benchmarker isnull.
-
-
Method Details
-
sort
Sorts the provided array in ascending order using the heap sort algorithm.Summary of heap sort algorithm: Heap Sort initially builds a max heap from the input array using
buildMaxHeap(int[]). It then repeatedly extracts the maximum element (the root of the heap) and places it at the end of the array. After each extraction, the heap property is restored for the remaining elements through aheapify(int[], int, int)operation. This continues until the entire array is sorted in ascending order.Input array validation is assumed to be performed by the calling
Sorterclass.- Specified by:
sortin interfaceSortStrategy- Parameters:
array- The array to be sorted.- Returns:
- A
BenchmarkMetriccontaining performance information about the sorting process. - Throws:
NullPointerException- If array isnull(should not happen).
-