#ifndef SORTS_H #define SORTS_H #include #include #include enum SortType {INSERTION = 0, MERGE, HEAP}; class Sorter { private: std::string filename; int lineCount; std::vector originalWordList; std::chrono::duration sortTime; public: Sorter(); std::vector newWordList; bool defaultFile, defaultOnly, fileGiven, allLists, sortGiven; SortType currentType; std::string GetFilename(void); void SetFilename(std::string newName); void SetWordList(void); void SortAll(void); void RunSorts(void); void __RunSorts__(void); void OutputResult(void); void PrintSortTime(std::string outputFilename); void PrintToFile(std::string outputFilename); }; void CheckArguments(int argc, char* arguments[], Sorter* sortObj); namespace ImplementedSort { // Performs Insertion Sort on given word list (vector of strings) void InsertionSort(std::vector *newWordList); // Performs Merge Sort on given word list (vector of strings) void MergeSort(std::vector *newWordList); void __MergeSort__(std::vector *newWordList, int p, int r); void __Merge__(std::vector *newWordList, int p, int q, int r); // Performs Heap Sort on given word list (vector of strings) void HeapSort(std::vector *newWordList); void __HeapSort__(std::vector *newWordList); void __Heapify__(std::vector *newWordList, int i, int heapSize); int __HEAPSORT_LEFT__(int i); int __HEAPSORT_RIGHT__(int i); } #endif