This repository provides a small and simple implementation of the Quicksort algorithm, which is to be used as a C++ programming challenge for potential student job candidates. The programming tasks are described in the issues section of this repository. See the criteria below for what to focus on when solving the exercises.
Table of Contents
Your solution should focus on
- Clean code and software architecture
- Testing
- Not decreasing performance of the current solution.
A good but only partial solution to the given tasks is better than a solution that covers everything poorly.
The implementation is dependant on the the following external libraries
- Bandit: Writing and running unit tests
These are directly imported as submodules. If you have not cloned the repository recursively, then run the following command
git submodule update --init --recursive
One also needs a C++ compiler that supports the 17 standard. All development has currently been with the gcc compiler, so we cannot guarantee other compilers will work out-of-the-box. The project is built with CMake. On Ubuntu 20+ you can obtain all these with the following commands.
apt install g++ cmake libboost-all-dev
The project is build with CMake, though for convenience I have simplified the CMake interactions to a single Makefile which works on a local machine. This has only been tested on Ubuntu 18.04 LTS and 20.04 LTS.
The Makefile provides the following targets
target | effect |
---|---|
build |
Build the source files |
clean |
Remove all build files |
test |
Run all unit tests |
main |
Run the main function in src/main.cpp |
The software and documentation files in this repository are provided under the MIT License.