// // main.cpp // Test // // Created by pgAgent on 18/11/2014. // Copyright (c) 2014 RJM Programming. All rights reserved. // // Numerically bubble sort an array of double data type random values within a range #include using namespace std; #define ASIZE 1000 // array size #define IMIN 0 // number minimum #define IMAX 250 // number maximum #define SMODE 1 // array sort 0=descending else ascending // Assumes double array values, but defines above are command line parameterizable void numerically_sort_array(double* asort, int isize = ASIZE, bool ascending = (SMODE != 0)) { double interim; int i, j; if (ascending) { for (i=(isize - 1); i>=1; i--) { for (j=1; j<=i; j++) { if (asort[j-1] > asort[j]) { interim = asort[j-1]; asort[j-1] = asort[j]; asort[j] = interim; } } } } else { for (i=1; i=i; j--) { if (asort[j-1] < asort[j]) { interim = asort[j-1]; asort[j-1] = asort[j]; asort[j] = interim; } } } } //return asort; } // Assumes double array values, but defines above are command line parameterizable int main(int argc, char **argv) { int n=1, jsize = ASIZE, jmin = IMIN, jmax = IMAX, imode = SMODE; double *psarray; if (argc > 1) { // command line arguments while (n < argc && n != 0 && argv[n][0] >= '0' && argv[n][0] <= '9') { if (n == 1) sscanf(argv[n], "%d", &jsize); if (n == 2) sscanf(argv[n], "%d", &jmin); if (n == 3) sscanf(argv[n], "%d", &jmax); if (n == 4) sscanf(argv[n], "%d", &imode); n++; if (n >= argc) n = 0; } } double sarray[jsize]; psarray = &sarray[0]; srand(time(0)); for (n=0; n