#include #include #include #include using namespace std; double get_cpu_time() { struct rusage ruse; getrusage(RUSAGE_SELF, &ruse); return ruse.ru_utime.tv_sec+ruse.ru_utime.tv_usec/1000000.0 + ruse.ru_stime.tv_sec+ruse.ru_stime.tv_usec/1000000.0; } void selection_sort(string A[], int N) { int sum = 0; for (int i = 0; i < N; i += 1) for (int j = 0; j < N; j += 1) sum += 1; } void bubble_sort(string A[], int N) { int sum = 0; for (int i = 0; i < N; i += 1) for (int j = 0; j < i; j += 1) sum += 1; } string random_string() { string s = ""; for (int i = 0; i < 10; i += 1) s += "abcdefghijklmnopqrstuvwxyz"[random() % 26]; return s; } int main(int argc, char * argv[]) { srandomdev(); cout << "The command line contained:\n"; for (int i = 0; i < argc; i += 1) cout << i << ": " << argv[i] << "\n"; int N = atoi(argv[1]); string * A1 = new string[N]; for (int i = 0; i < N; i += 1) A1[i] = random_string(); string * A2 = new string[N]; for (int i = 0; i < N; i += 1) A2[i] = A1[i]; double t1 = get_cpu_time(); selection_sort(A1, N); double t2 = get_cpu_time(); bubble_sort(A2, N); double t3 = get_cpu_time(); cout << "selection sort took " << t2-t1 << " seconds\n"; cout << "bubble sort took " << t3-t2 << " seconds\n"; }