Files
SortLab/include/sorters/QuickSorter.hpp
T
2026-03-03 21:55:57 +03:00

26 lines
671 B
C++

#pragma once
#include "Sorter.hpp"
#include <vector>
class QuickSorter : public Sorter {
public:
QuickSorter();
void step(Array& array) override;
bool isFinished() const override;
std::string getName() const override;
std::string getTimeComplexity() const override;
std::string getSpaceComplexity() const override;
void reset() override;
private:
struct Range { int low; int high; };
enum class Phase { PARTITIONING, SWAPPING_PIVOT, PUSHING_RANGES };
std::vector<Range> stack_;
Phase phase_;
int currentLow_, currentHigh_, pivotIndex_, i_, j_, n_;
float pivotValue_;
bool finished_;
bool needNewRange_;
};