// File: main2.C // // #include #include #include #include #include "integer.h" #include "mystring.h" #include "quicksort4.h" static void CrashOnNULL(void *ptr) { if (ptr == NULL) { cerr << "Ouch!" << endl ; exit(1) ; } } main() { Ordered **A ; int i ; srand48(time(NULL)) ; A = new Ordered*[50] ; CrashOnNULL(A) ; cout << "\nOriginal array: " << endl ; for (i = 0 ; i < 50 ; i++) { A[i] = new Integer(lrand48()) ; CrashOnNULL(A[i]) ; A[i]->print() ; cout << " " ; if (i%5 == 4) cout << endl ; } QuickSort(A, 50) ; cout << "\nSorted array: " << endl ; for (i = 0 ; i < 50 ; i++) { A[i]->print() ; cout << " " ; if (i%5 == 4) cout << endl ; } // Do it again with an array of strings Ordered **C = new Ordered*[12] ; CrashOnNULL(C) ; C[0] = new String("Space,") ; C[1] = new String("the") ; C[2] = new String("final") ; C[3] = new String("frontier.") ; C[4] = new String("These") ; C[5] = new String("are") ; C[6] = new String("the") ; C[7] = new String("voyages") ; C[8] = new String("of") ; C[9] = new String("the") ; C[10] = new String("Starship") ; C[11] = new String("Enterprise") ; cout << "\nOriginal Array: " << endl ; for (i = 0 ; i < 12 ; i++) { CrashOnNULL(C[i]) ; C[i]->print() ; if (i % 5 == 4) cout << endl ; } cout << endl ; QuickSort(C, 12) ; cout << "\nSorted Array: " << endl ; for (i = 0 ; i < 12 ; i++) { C[i]->print() ; if (i % 5 == 4) cout << endl ; } cout << endl ; // Mixing apples and oranges for (i = 20 ; i < 32 ; i++) { delete A[i] ; A[i] = C[i-20] ; } cout << "\nOriginal Mixed Array: " << endl ; for (i = 0 ; i < 50 ; i++) { A[i]->print() ; if (i % 5 == 4) cout << endl ; } cout << endl ; QuickSort(A, 50) ; cout << "\nSorted array: " << endl ; for (i = 0 ; i < 50 ; i++) { A[i]->print() ; delete A[i] ; cout << " " ; if (i%5 == 4) cout << endl ; } }