Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- int getNextGap(int gap)
- {
- // Shrink gap by Shrink factor
- gap = (gap * 10) / 13;
- if (gap < 1)
- return 1;
- return gap;
- }
- // Function to sort a[0..n-1] using Comb Sort
- void combSort(int* mass, int n)
- {
- // Initialize gap
- int gap = n;
- // Initialize swapped as true to make sure that
- // loop runs
- bool swapped = true;
- // Keep running while gap is more than 1 and last
- // iteration caused a swap
- while (gap != 1 || swapped == true)
- {
- // Find next gap
- gap = getNextGap(gap);
- // Initialize swapped as false so that we can
- // check if swap happened or not
- swapped = false;
- // Compare all elements with current gap
- for (int i = 0; i < n - gap; i++)
- {
- if (mass[i] > mass[i + gap])
- {
- swap(mass[i], mass[i + gap]);
- swapped = true;
- }
- }
- }
- cout << "Отсотрированный массив: ";
- for (int i = 0; i < n; i++)
- {
- cout << mass[i] << " ";
- }
- }
- int main()
- {
- int n;
- setlocale(0, "");
- cout << "Введите любое положительное целое число - ";
- cin >> n;
- int* mass;
- mass = new int[n];
- srand(time(NULL));
- for (int i = 0; i < n; i++)
- {
- mass[i] = rand() % 100;
- }
- cout << "Массив заполнен рандомнами числами:";
- for (int i = 0; i < n; i++)
- {
- cout << mass[i] << " ";
- }
- cout << endl; //ТУТ
- combSort(mass, n); //ТУТ
- system("Pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement