-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathsort.h
37 lines (28 loc) · 1.29 KB
/
sort.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef EASY_ALGORITHM_SORT_H
#define EASY_ALGORITHM_SORT_H
#include "sort_algorithm.h"
namespace easy_algorithm {
class DataStructure; // Предварительное объявление класса
class Sort { // Класс-интерфейс для сортировки структур данных и подсчета времени выполнения операций
public:
Sort(DataStructure* ds, SortAlgorithm* sa, TimeObserver* to);
void sort(); // Выполнить сортировку структуры данных ds с помощью алгоритма sa. to будет собирать сведения о времени процесса сортировки
void setTimeObserver(TimeObserver* pTO);
void setDataStructure(DataStructure* pDS);
void setSortAlgorithm(SortAlgorithm* pSA);
void resetTimeObserver();
double getComparisonTime(); // Получение времен выполнения операций
double getAssignmentTime();
double getTotalTime();
double getSearchTime();
private:
DataStructure* _pDS;
SortAlgorithm* _pSA;
TimeObserver* _pTO;
};
struct SortTime {
double total, comp, assign, search;
SortTime(double t, double c, double a, double s) : total(t), comp(c), assign(a), search(s) {}
};
}
#endif