- Merge sort
- Quick sort
- Heap sort
- Insertion sort
- Selection sort
- Bubble sort
- Merge sort
- Quick sort
- Heap sort
- Insertion sort
- Selection sort
- Bubble sort
- Write bash scripts for building Java, C and C++ src. code
- Automate build with gradle + bash scripts
- Add junit5 to project
- Add log4j2 to project
- Single principle (every entity should have responsibility over a single part of program's functionality.)
- Open closed (entities should be open for extension, but closed for modification.)
- Liskov substitution (if S is a subtype of T, then objects of type T may be replaced with objects of type S without altering any of the desirable properties of the program)
- Interface segregation (no client should be forced to depend on methods it does not use)
- Dependency inversion (High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions.) Example package sort with abstract entity SortAlgorithm
- Abstract Factory (com.ivan.app.sort.SortAlgorithmFactory)
- https://www.ibm.com/developerworks/systems/library/es-jniexamples.html
- https://www.owsiak.org/simple-jni-passing-array-from-java-to-c/
- https://en.wikipedia.org/wiki/SOLID
- https://en.wikipedia.org/wiki/Heapsort
- https://www.javatpoint.com/heap-sort
$ ./gradlew compileJava buildCSources buildCppSources copyCompileDeps build