Spicke

10. Сортировка по возрастанию «пузырьком».

Feb 14th, 2017
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <iostream>
  3. #include <time.h>
  4.  
  5. using namespace std;
  6.  
  7. void ekran(int w[], int q){
  8.     cout << "Введите размер массива\n" << q << endl;
  9.     cout << "Исходный массив\n";
  10.     for (int i = 0; i < q; i++) cout << " " << w[i];
  11. }
  12.  
  13. int main() {
  14.     setlocale(LC_ALL, "Rus");
  15.     srand(time(NULL));
  16.     int *x;
  17.     int a = -100;
  18.     int b = 100;
  19.     int y, n;
  20.     int s = 0;
  21.     cout << "Введите размер массива\n";
  22.     cin >> n;
  23.     if (n < 1) {
  24.         x = new int[10];
  25.         cout << "Исходный массив\n";
  26.         for (int i = 0; i < 10; i++) {
  27.             x[i] = rand() % (b - a + 1) + a;
  28.             cout << " " << x[i];
  29.         }
  30.         for (int i = 1; i < 10; ++i)
  31.         {
  32.             for (int j = 0; j < 10 - i; j++)
  33.             {
  34.                 if (x[j] > x[j + 1])
  35.                 {
  36.                     s++;
  37.                     y = x[j];
  38.                     x[j] = x[j + 1];
  39.                     x[j + 1] = y;
  40.                 }
  41.             }
  42.         }
  43.         cout << "\nОтсортированный массив\n";
  44.         for (int i = 0; i < 10; i++) {
  45.             cout << " " << x[i];
  46.         }
  47.         cout << "\nКоличество сравнений\n" << s;
  48.     }
  49.     else {
  50.         x = new int[n];
  51.         cout << "Исходный массив\n";
  52.         for (int i = 0; i < n; i++) {
  53.             cin >> x[i];
  54.             cout << " " << x[i];
  55.         }
  56.         system("cls");
  57.         ekran(x, n);
  58.         for (int i = 1; i < n; ++i)
  59.         {
  60.             for (int j = 0; j < n - i; j++)
  61.             {
  62.                 if (x[j] > x[j + 1])
  63.                 {
  64.                     s++;
  65.                     y = x[j];
  66.                     x[j] = x[j + 1];
  67.                     x[j + 1] = y;
  68.                 }
  69.             }
  70.         }
  71.         cout << "\nОтсортированный массив\n";
  72.         for (int i = 0; i < n; i++) {
  73.             cout << " " << x[i];
  74.         }
  75.         cout << "\nКоличество сравнений\n" << s;
  76.     }
  77.     cout << endl;
  78.     return false;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment