33 lines
843 B
C++
33 lines
843 B
C++
#pragma once
|
|
#include "Jacobstahl.hpp"
|
|
#include <vector>
|
|
#include <deque>
|
|
#include <ostream>
|
|
#include <stdexcept>
|
|
|
|
class PmergeMe
|
|
{
|
|
public:
|
|
PmergeMe() = delete;
|
|
PmergeMe(const int argc, const char **argv);
|
|
PmergeMe(const PmergeMe &other);
|
|
~PmergeMe();
|
|
|
|
PmergeMe &operator=(const PmergeMe &other);
|
|
std::ostream &operator<<(std::ostream &os) const;
|
|
|
|
void sort();
|
|
void sortVector(int level);
|
|
std::string getPrintableVector() const;
|
|
std::string getPrintableDeque() const;
|
|
|
|
private:
|
|
std::vector<int> _data_vector;
|
|
std::deque<int> _data_deque;
|
|
std::vector<int> _jacobstahl_numbers;
|
|
|
|
bool areAllUnique() const;
|
|
void insertVector(std::vector<int> &main, std::vector<int> &pend, int start_index, int right, int group_size);
|
|
};
|
|
|
|
std::ostream &operator<<(std::ostream &os, const PmergeMe &obj); |