SHARE
TWEET

Untitled

a guest Mar 22nd, 2019 65 in 248 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <stdlib.h> //используем для рандомного заполнения
  4. #include <time.h>   //и это для рандомного
  5. using namespace std;
  6.  
  7. void insertionSort(int *arrayPtr, int length, int *M, int *C, unsigned int *time) // сортировка вставками
  8. {
  9.     int temp, // временная переменная для хранения значения элемента сортируемого массива
  10.         item; // индекс предыдущего элемента
  11.     unsigned int StartTime, ResultTime;
  12.  
  13.     StartTime = clock();
  14.     for (int counter = 1; counter < length; counter++)
  15.     {  
  16.         temp = arrayPtr[counter]; // инициализируем временную переменную текущим значением элемента массива
  17.         item = counter - 1; // запоминаем индекс предыдущего элемента массива
  18.         while (item >= 0 && arrayPtr[item] > temp) // пока индекс не равен 0 и предыдущий элемент массива больше текущего
  19.         {
  20.             //*C += 2;
  21.             arrayPtr[item + 1] = arrayPtr[item]; // перестановка элементов массива
  22.             arrayPtr[item] = temp;
  23.             item--;
  24.             //*M += 1;
  25.         }
  26.         //*C += 2;
  27.     }
  28.     ResultTime = clock();
  29.     *time = ResultTime - StartTime;
  30. }
  31.  
  32. void KlavaVvod(int *Arr, int N) {
  33.     for (int i = 0; i < N; i++) {
  34.         cout << "Введите " << i + 1 << " элемент массива: " << endl;
  35.         cin >> Arr[i];
  36.         system("cls");
  37.     }
  38. }
  39.  
  40. void RandVvod(int *Arr, int N) {
  41.     srand(time(0));
  42.     for (int i = 0; i < N; i++) {
  43.         Arr[i] = 1 + rand() % 100;
  44.     }
  45. }
  46.  
  47. int main()
  48. {
  49.     setlocale(LC_ALL, "rus");
  50.  
  51.     cout << "Введем размер массива ";
  52.     int N;
  53.     cin >> N;
  54.     int *Arr = new int[N];
  55.     cout << "Рандомно (1) или вручную(2)?";
  56.     int x;
  57.     cin >> x;
  58.  
  59.     switch (x)
  60.     {
  61.         case 1:
  62.             RandVvod(Arr, N);
  63.             break;
  64.         case 2:
  65.             KlavaVvod(Arr, N);
  66.             break;
  67.     }
  68.  
  69.     int M = 0, //операции перемещения
  70.         C = 0; //операйции сравнения
  71.         unsigned int time;
  72.  
  73.  
  74.     insertionSort(Arr, N, &M, &C, &time);
  75.  
  76.     system("cls");
  77.     cout << "Оперций перемещения: " << M << "\nОпераций сравнения: " << C<<endl<<endl;
  78.     system("pause");
  79.     return 0;
  80. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top