// File: main3.C // // Generic QuickSort via templates. #include #include #include #include #include "bstring3.h" #include "qstemplate.h" main() { int *A, i, n=50 ; srand48(time(NULL)) ; A = new int[n] ; if (A == NULL) abort() ; cout << "\nOriginal Array: " << endl ; for (i = 0 ; i < n ; i++) { A[i] = lrand48() ; cout << setw(12) << A[i] << " " ; if (i % 5 == 4) cout << endl ; } QuickSort(A,n) ; cout << "\nSorted Array: " << endl ; for (i = 0 ; i < n ; i++) { cout << setw(12) << A[i] << " " ; if (i % 5 == 4) cout << endl ; } // Do it again with a floating point array float *B = new float[n] ; if (B == NULL) abort() ; cout << "\nOriginal Array: " << endl ; for (i = 0 ; i < n ; i++) { B[i] = drand48() ; cout << setw(12) << B[i] << " " ; if (i % 5 == 4) cout << endl ; } QuickSort(B,n) ; cout << "\nSorted Array: " << endl ; for (i = 0 ; i < n ; i++) { cout << setw(12) << B[i] << " " ; if (i % 5 == 4) cout << endl ; } // Do it again with an array of strings BString C[] = { BString("Space,"), BString("the"), BString("final"), BString("frontier."), BString("These"), BString("are"), BString("the"), BString("voyages"), BString("of"), BString("the"), BString("Starship"), BString("Enterprise") } ; n = 12 ; cout << "\nOriginal Array: " << endl ; for (i = 0 ; i < n ; i++) { cout << setw(12) << C[i] << " " ; if (i % 5 == 4) cout << endl ; } cout << endl ; QuickSort(C,n) ; cout << "\nSorted Array: " << endl ; for (i = 0 ; i < n ; i++) { cout << setw(12) << C[i] << " " ; if (i % 5 == 4) cout << endl ; } cout << endl ; }