Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. int getNextGap(int gap)
  7. {
  8.     // Shrink gap by Shrink factor
  9.     gap = (gap * 10) / 13;
  10.  
  11.     if (gap < 1)
  12.         return 1;
  13.     return gap;
  14. }
  15.  
  16. // Function to sort a[0..n-1] using Comb Sort
  17. void combSort(int* mass, int n)
  18. {
  19.     // Initialize gap
  20.     int gap = n;
  21.  
  22.     // Initialize swapped as true to make sure that
  23.     // loop runs
  24.     bool swapped = true;
  25.  
  26.     // Keep running while gap is more than 1 and last
  27.     // iteration caused a swap
  28.     while (gap != 1 || swapped == true)
  29.     {
  30.         // Find next gap
  31.         gap = getNextGap(gap);
  32.  
  33.         // Initialize swapped as false so that we can
  34.         // check if swap happened or not
  35.         swapped = false;
  36.  
  37.         // Compare all elements with current gap
  38.         for (int i = 0; i < n - gap; i++)
  39.         {
  40.             if (mass[i] > mass[i + gap])
  41.             {
  42.                 swap(mass[i], mass[i + gap]);
  43.                 swapped = true;
  44.             }
  45.         }
  46.     }
  47.     cout << "Отсотрированный массив: ";
  48.     for (int i = 0; i < n; i++)
  49.     {
  50.         cout << mass[i] << " ";
  51.     }
  52. }
  53.  
  54.  
  55. int main()
  56. {
  57.     int n;
  58.     setlocale(0, "");
  59.     cout << "Введите любое положительное целое число - ";
  60.     cin >> n;
  61.     int* mass;
  62.     mass = new int[n];
  63.     srand(time(NULL));
  64.     for (int i = 0; i < n; i++)
  65.     {
  66.         mass[i] = rand() % 100;
  67.     }
  68.     cout << "Массив заполнен рандомнами числами:";
  69.     for (int i = 0; i < n; i++)
  70.     {
  71.         cout << mass[i] << " ";
  72.     }
  73.     cout << endl;   //ТУТ
  74.     combSort(mass, n); //ТУТ
  75.     system("Pause");
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement