Files
SortLab/include/sorters/MergeSorter.hpp
T
2026-03-02 15:48:49 +03:00

29 lines
591 B
C++

#pragma once
#include "Sorter.hpp"
#include <vector>
class MergeSorter : public Sorter {
public:
MergeSorter();
void step(Array& array) override;
bool isFinished() const override;
std::string getName() const override;
void reset() override;
private:
enum class Phase { MERGING, COPYING_LEFT, COPYING_RIGHT, COPYING_BACK, NEXT_MERGE };
int currentSize_;
int leftStart_;
int mid_;
int rightEnd_;
int leftIndex_;
int rightIndex_;
int mergeIndex_;
std::vector<float> temp_;
bool finished_;
Phase phase_;
int n_;
};