home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / array5.cpp < prev    next >
C/C++ Source or Header  |  1993-03-26  |  2KB  |  73 lines

  1. // C++ program that sorts arrays using the Comb sort method
  2.  
  3. #include <iostream.h>
  4.               
  5. const int MAX = 10;              
  6. const int TRUE = 1;
  7. const int FALSE = 0;
  8.   
  9. int obtainNumData()
  10. {
  11.   int m;
  12.   do { // obtain number of data points
  13.     cout << "Enter number of data points [2 to "
  14.         << MAX << "] : ";
  15.     cin >> m;
  16.     cout << "\n";
  17.   } while (m < 2 || m > MAX);
  18.   return m;
  19. }
  20.  
  21. void inputArray(int intArr[], int n)
  22. {              
  23.   // prompt user for data
  24.   for (int i = 0; i < n; i++) {
  25.     cout << "arr[" << i << "] : ";
  26.     cin >> intArr[i];
  27.   }
  28. }
  29.                  
  30. void showArray(int intArr[], int n)
  31. {              
  32.   for (int i = 0; i < n; i++) {
  33.     cout.width(5);
  34.     cout << intArr[i] << " ";
  35.   }
  36.   cout << "\n";
  37. }                       
  38.  
  39. void sortArray(int intArr[], int n)
  40. {
  41.   int offset, temp, inOrder;
  42.   
  43.   offset = n;      
  44.   do {                                       
  45.     offset = (8 * offset) / 11;
  46.     offset = (offset == 0) ? 1 : offset;
  47.     inOrder = TRUE;
  48.     for (int i = 0, j = offset; i < (n - offset); i++, j++) {
  49.       if (intArr[i] > intArr[j]) {
  50.         inOrder = FALSE;
  51.         temp = intArr[i];
  52.         intArr[i] = intArr[j];
  53.         intArr[j] = temp;
  54.       }
  55.     }
  56.   } while (!(offset = 1 && inOrder == TRUE));
  57. }
  58.                  
  59. main()
  60. {          
  61.   int arr[MAX];
  62.   int n;
  63.  
  64.   n = obtainNumData();
  65.   inputArray(arr, n);  
  66.   cout << "Unordered array is:\n";
  67.   showArray(arr, n);
  68.   sortArray(arr, n);
  69.   cout << "\nSorted array is:\n";
  70.   showArray(arr, n);
  71.   return 0;
  72. }
  73.