median-comparison

Building

Run make in the project root directory.

Usage

First, generate test data:

python3 generate_testfiles.py

(The amount of numbers to generate can be modified in that script.)

Then, run the program:

./mc

Example output is shown below.

Example Output

calculating median on index 499999 of 999999 elems...
quicksort median                                2149523045
array quicksort                                 2149523045
array std sort                                  2149523045
randomized select                               2149523045
vector median of medians only (approximative)   2149866506
vector median of medians + quickselect (exact)  2149523045
wirth kth element                               2149523045
nth element                                     2149523045
--------------------
Results: 
--------------------
array quicksort                                 :   112.1097ms
array std sort                                  :    59.8321ms
init                                            :    67.5942ms
nth element                                     :     5.7105ms
quicksort median                                :    76.1378ms
randomized select                               :     8.8619ms
vector median of medians + quickselect (exact)  :    22.3934ms
vector median of medians only (approximative)   :    11.3237ms
wirth kth element                               :     8.5368ms
--------------------

Complexity

The algorithms which fully sort the array (quicksort median, array quicksort, array std sort) have an average complexity of O(N logN). All 'proper' median algorithms (randomized select, vector median of medians, wirth kth element, nth element) have an average complexity of O(N). The difference is well visible in the results above.

Description
No description provided
Readme 9.8 MiB
Languages
C++ 96.5%
Python 1.9%
Makefile 1.6%