void time_algorithms(sort_mode mode, std::vector<size_t> sizes, sort_function *fs_sort, std::string *algorithm_names, int num_algorithms) { time_t start_time_total = time(NULL); int *arr = create_array(sizes[sizes.size() - 1], mode); long long *results = new long long[sizes.size() * num_algorithms]; for(int i = 0; i < num_algorithms; i++) { time_t start_time = time(NULL); long long *current_results = time_algorithm(arr, sizes, fs_sort[i]); for(int j = 0; j < sizes.size(); j++) { results[i * sizes.size() + j] = current_results[j]; } delete[] current_results; std::cout << "Took " << time(NULL) - start_time << "s" << std::endl << std::endl; } time_t total_time = time(NULL) - start_time_total; std::cout << std::endl << "All took " << total_time / 60 << ":" << total_time % 60 << std::endl; std::ofstream f("/Users/frnkymac/Code/arz/arz_ultimate/pidr.dat", std::ios::trunc | std::ios::out); f << "-"; for(int i = 0; i < num_algorithms; i++) { f << " " << algorithm_names[i]; } f << std::endl; for(int i = 0; i < sizes.size(); i++) { f << sizes[i]; for(int j = 0; j < num_algorithms; j++) { f << " " << results[j * sizes.size() + i]; } f << std::endl; } f.close(); delete[] results; delete[] arr; }
void run_performance_test() { time_algorithm(); generate_output(); }