// File: qsort4.C // // Using the qsort() library function. // This time we use templates to get qsort for integers and doubles. // Use the g++ compiler, not SGI CC #include #include #include //===================================================================== // Use qsort template #include "qtemplate.h" //===================================================================== main(int argc, char *argv[]) { int *A ; double *B ; int i, n = 0, r1, r2 ; long seed ; // read command line arguments if (argc != 3) { cerr << "Usage: qsort num seed\n" ; exit(1) ; } r1 = sscanf(argv[1], "%d", &n) ; r2 = sscanf(argv[2], "%ld", &seed) ; // %ld for long int if (r1 < 1 || r2 < 1 || n <= 0) { cerr << "Bad arguments!\n" ; exit(1) ; } // generate data srand48(seed) ; A = new int[n] ; if (A == NULL) { cerr << "Out of memory!\n" ; exit(1) ; } for (i = 0 ; i < n ; i++) { A[i] = (int) lrand48() ; // depends on data type } cout << "\n" << "Original Array:" << "\n" ; PrintArray(A, n) ; qsort(A, n) ; cout << "\nSorted Array:\n" ; PrintArray(A, n) ; if ( CheckArray(A, n) ) { cout << "\nArray is properly sorted\n" ; } else { cout << "\nArray is *NOT* sorted\n" ; } B = new double[n] ; if (B == NULL) { cerr << "Out of memory!\n" ; exit(1) ; } for (i = 0 ; i < n ; i++) { B[i] = (double) drand48() ; // depends on data type } cout << "\n" << "Original Array:" << "\n" ; PrintArray(B, n) ; qsort(B, n) ; cout << "\nSorted Array:\n" ; PrintArray(B, n) ; if ( CheckArray(B, n) ) { cout << "\nArray is properly sorted\n" ; } else { cout << "\nArray is *NOT* sorted\n" ; } }