Main purpose of this project is to recap and re-implement common-used and well-known algorithms in Java and their properties as well as getting used to Maven, EditorConfig and GitHub actions/ workflows. Properties of implemented algorithms may differ from properties listed below. Some algorithms are plain implementations of common-known pseudocode.
class | name | best-case | average-case | worst-case | description | in-place | stable |
---|---|---|---|---|---|---|---|
insertion | InsertionSort | Yes | Yes | ||||
ShellSort1 | Yes | No | |||||
selection | SelectionSort | Yes | No | ||||
HeapSort | Yes | No | |||||
exchange | BubbleSort | Yes | Yes | ||||
CombSort1 |
|
Yes | No | ||||
CocktailSort | Yes | Yes | |||||
QuickSort | Yes | No | |||||
GnomeSort | Yes | Yes | |||||
BogoSort | Yes | No | |||||
merge | MergeSort | No (uses auxillary storage) | Yes | ||||
distribution | CountingSort |
|
No (uses auxillary storage) | Yes | |||
BucketSort |
|
No (uses auxillary storage) | No | ||||
concurrent | BitonicSort2 | No (depends on implementation) | No | ||||
hybrid | |||||||
other | PancakeSort | Yes | No |
class | name | best-case | average-case | worst-case | description |
---|---|---|---|---|---|
generic (Searching) | LinearSearch | ||||
BinarySearch | |||||
TernarySearch | |||||
JumpSearch | |||||
ExponentialSearch | |||||
FibonacciSearch | |||||
2D (Searching2D) | SaddlebackSearch |
|
|||
integer (Finding) | InterpolationSearch |
|
|||
InterpolationSequentialSearch |