#ifndef SORTSTRATEGY_H #define SORTSTRATEGY_H /////////////////////////////////////////////////////////////////////// // SortStrategy.h - Strategy Example Code - Sorting // // Ver: 1.0 // // Language: Visual C++ 2010 // // Platform: Dell Dimension T7400, Win 7, Pro // // Author: Jim Fawcett, CSE776 - Design Patterns, Summer 2010 // // Source: Lei Zhang, lzhang17@syr.edu // /////////////////////////////////////////////////////////////////////// #include class SortStrategy { public: virtual void sorting(std::vector & num) = 0; }; class InsertionSort : public SortStrategy { public: void sorting(std::vector & num); }; class QuickSort : public SortStrategy { public: void sorting(std::vector & num); private: void Quick_Sort(std::vector & num, int p, int r); int partition(std::vector & num, int p, int r); void swap(int & a, int & b); }; class MergeSort: public SortStrategy { public: void sorting(std::vector & num); private: void Merge_Sort(std::vector & num, int p, int r); void Merge(std::vector & num, int p, int q, int r); }; #endif