home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / array7.cpp < prev    next >
C/C++ Source or Header  |  1993-03-26  |  2KB  |  74 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.   while (offset > 1) {                                       
  45.     offset /= 2;
  46.     do {      
  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 (!inOrder);
  57.   }
  58. }
  59.                  
  60. main()
  61. {          
  62.   int arr[MAX];
  63.   int n;
  64.  
  65.   n = obtainNumData();
  66.   inputArray(arr, n);  
  67.   cout << "Unordered array is:\n";
  68.   showArray(arr, n);
  69.   sortArray(arr, n);
  70.   cout << "\nSorted array is:\n";
  71.   showArray(arr, n);
  72.   return 0;
  73. }
  74.