30 lines
1.1 KiB
C++
30 lines
1.1 KiB
C++
#include <iostream>
|
|
#include <algorithm> // std::nth_element
|
|
|
|
#include "fileHandler.h"
|
|
#include "Timing.h"
|
|
#include "MedianQuicksort.h"
|
|
|
|
int main(int argc, char** argv) {
|
|
Timing::getInstance()->startRecord("init");
|
|
std::vector<size_t> numbers = readFromFile("testdata");
|
|
std::cout << "read " << numbers.size() << " values" << std::endl;
|
|
Timing::getInstance()->stopRecord("init");
|
|
|
|
// vollständige Sortierung mit Quicksort und Ausgabe des mittleren Elements
|
|
Timing::getInstance()->startRecord("quicksort");
|
|
std::cout << "quicksort median: " << getMedian(numbers) << std::endl;
|
|
Timing::getInstance()->stopRecord("quicksort");
|
|
|
|
// Verwendung des C++ STL function templates nth_element
|
|
Timing::getInstance()->startRecord("nth element");
|
|
std::nth_element(numbers.begin(), numbers.begin() + numbers.size() / 2, numbers.end());
|
|
size_t idxMed = numbers.size() / 2;
|
|
if (idxMed - (int)idxMed > 0) idxMed++;
|
|
std::cout << "nth element: " << numbers[idxMed] << std::endl;
|
|
Timing::getInstance()->stopRecord("nth element");
|
|
|
|
//Timing::getInstance()->getResults();
|
|
Timing::getInstance()->print();
|
|
return 0;
|
|
} |