SSoelvsten / quicksort-test

Programming test for a student programmer job interview.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quicksort Test

MIT License linux macos windows

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

Criteria

Your solution should focus on

  1. Clean code and software architecture
  2. Testing
  3. 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.

Dependencies

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

Usage

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

License

The software and documentation files in this repository are provided under the MIT License.

About

Programming test for a student programmer job interview.

License:MIT License


Languages

Language:C++ 58.1%Language:CMake 29.5%Language:Makefile 12.4%