#include #include #include #include #include #define MANY 10000 //------------------------------- // Item implementation class ads_item { int data; public: // Counters for assignments and comparisons static size_t assignments_count, comparisons_count; // Constructor. Initialize items with random values. ads_item() { data = rand(); }; // Constructor with copying. ads_item(const ads_item & other) : data(other.data) { ++assignments_count; }; // Reset counters to 0. static void reset() { assignments_count = 0; comparisons_count = 0; } // Overloading comparison operation. bool operator<(const ads_item &other) const { ++comparisons_count; return data& unsorted, ads_linked_list& sorted) { // Implement insertion sort for dynamic list as a target storage. for (size_t i = 0; i(time(NULL))); // Define an unsorted array (of type 'vector') with random item values. std::vector unsorted(array_len); // Display info about operations counts. cout << "Vectors created : " << array_len << " items\n"; cout << "Assignments : " << ads_item::assignments_count << " comparisons : "; cout << ads_item::comparisons_count << endl; // Define a dynamic list for sorted array. ads_linked_list sorted; // Run insertion list based on dinamic list. ads_item::reset(); insertion_sort_list(unsorted, sorted); cout << "\nInsertion sort (dynamic list based): assignments : " << ads_item::assignments_count; cout << " comparisons : " << ads_item::comparisons_count << endl; return 0; }