// File: genmain1.C // // First main program to test generic selection sort #include #include #include "genselect.h" // Function prototypes // int cmp_int (int *, int *) ; int cmp_int_rev (int *, int *) ; int cmp_double (double *, double *) ; // Comparison Functions // int cmp_int (int *ptr1, int *ptr2) { if (*ptr1 < *ptr2) return -1 ; if (*ptr1 > *ptr2) return 1 ; return 0 ; } int cmp_int_rev (int *ptr1, int *ptr2) { if (*ptr1 < *ptr2) return 1 ; if (*ptr1 > *ptr2) return -1 ; return 0 ; } int cmp_double (double *ptr1, double *ptr2) { if (*ptr1 < *ptr2) return -1 ; if (*ptr1 > *ptr2) return 1 ; return 0 ; } main() { int A[] = {5, 7, 9, 2, 1, 4, 3, 6, 8, 0} ; double B[] = {1.5, 1.7, 1.9, 1.2, 1.1, 1.4, 1.3, 1.6, 1.8, 1.0} ; int i ; cout << "\nSort in decreasing order:" << endl ; SelectionSort(A, 10, sizeof(int), (CMP_FUNC) cmp_int) ; for (i = 0 ; i < 10 ; i++) { cout << "A[" << setw(2) << setfill('0') << i << "] = " << A[i] << endl ; } cout << "\nSort in increasing order:" << endl ; SelectionSort(A, 10, sizeof(int), (CMP_FUNC) cmp_int_rev) ; for (i = 0 ; i < 10 ; i++) { cout << "A[" << setw(2) << setfill('0') << i << "] = " << A[i] << endl ; } cout << "\nSort doubles in decreasing order:" << endl ; SelectionSort(B, 10, sizeof(double), (CMP_FUNC) cmp_double) ; for (i = 0 ; i < 10 ; i++) { cout << "B[" << setw(2) << setfill('0') << i << "] = " << B[i] << endl ; } }