mostlabs

cakod 1/1

Dec 13th, 2020 (edited)
989
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.91 KB | None | 0 0
  1. #include<iostream>
  2. #include<time.h>
  3.  
  4. using namespace std;
  5. void swap(int* a, int* b) {
  6.     int temp;
  7.     temp = *a;
  8.     *a = *b;
  9.     *b = temp;
  10. }
  11. void ShakerSort(int a[], int m) {
  12.     int i, j, k;
  13.     clock_t start = 0, end = 0;
  14.  
  15.     start = clock();
  16.     for (int r = 0; r < 1000; r++) {
  17.         for (i = 0; i < m;) {
  18.             for (j = i + 1; j < m; j++) {
  19.                 if (a[j] < a[j - 1])
  20.                     swap(&a[j], &a[j - 1]);
  21.             }
  22.             m--;
  23.             for (k = m - 1; k > i; k--) {
  24.                 if (a[k] < a[k - 1])
  25.                     swap(&a[k], &a[k - 1]);
  26.             }
  27.             i++;
  28.         }
  29.     }
  30.  
  31.     end = clock();
  32.     cout << endl << "time = " << ("The above code block was executed in %.4f second(s)\n", ((double)end - start) / ((double)CLOCKS_PER_SEC)) << endl;
  33.  
  34.  
  35. }
  36. /*------------------------------------------------------------*/
  37. int binarySearch(int arr[], int item, int low, int high) {
  38.     if (high <= low)
  39.         return (item > arr[low]) ? (low + 1) : low;
  40.     int mid = (low + high) / 2;
  41.     if (item == arr[mid])
  42.         return mid + 1;
  43.     if (item > arr[mid])
  44.         return binarySearch(arr, item, mid + 1, high);
  45.     return binarySearch(arr, item, low, mid - 1);
  46. }
  47. void BinaryInsertionSort(int arr[], int n) {
  48.     int i, loc, j, k, selected;
  49.     clock_t start = 0, end = 0;
  50.  
  51.     start = clock();
  52.     for (int r = 0; r < 10087; r++) {
  53.         for (i = 1; i < n; ++i) {
  54.             j = i - 1;
  55.             selected = arr[i];
  56.             loc = binarySearch(arr, selected, 0, j);
  57.             while (j >= loc) {
  58.                 arr[j + 1] = arr[j];
  59.                 j--;
  60.             }
  61.             arr[j + 1] = selected;
  62.         }
  63.     }
  64.     end = clock();
  65.     cout << endl << "time = " << ("The above code block was executed in %.4f second(s)\n", ((double)end - start) / ((double)CLOCKS_PER_SEC)) << endl;
  66.  
  67. }
  68. /*---------------------------------------------------------------*/
  69. int i, j, key = 0, temp = 0;
  70. void InsertSort(int* mas, int n)
  71. {
  72.     clock_t start = 0, end = 0;
  73.  
  74.     start = clock();
  75.     for (int r = 0; r < 1000000; r++) {
  76.         for (i = 0; i < n - 1; i++)
  77.         {
  78.             key = i + 1;
  79.             temp = mas[key];
  80.             for (j = i + 1; j > 0; j--)
  81.             {
  82.                 if (temp < mas[j - 1])
  83.                 {
  84.                     mas[j] = mas[j - 1];
  85.                     key = j - 1;
  86.                 }
  87.             }
  88.             mas[key] = temp;
  89.         }
  90.     }
  91.     end = clock();
  92.     cout << endl << "sıralama: ";
  93.     for (i = 0; i < n; i++)
  94.         cout << mas[i] << " ";
  95.  
  96.     cout << endl << "time = " << ("The above code block was executed in %.4f second(s)\n", ((double)end - start) / ((double)CLOCKS_PER_SEC)) << endl;
  97. }
  98.  
  99. void main()
  100. {
  101.     int n;//Sorting by simple inserts
  102.     cout << "n:"; cin >> n;
  103.     int* mas = new int[n];
  104.     for (i = 0; i < n; i++)
  105.     {
  106.         cout << "Enter element " << i + 1 << ": ";
  107.         cin >> mas[i];
  108.     }
  109.     InsertSort(mas, n);
  110.     cout << "----------------------------------------------------------" << endl;
  111.     int mas2[] = { 37, 23, 0, 17, 12, 72, 31,46, 100, 88, 54 };//Sorting using binary inserts.
  112.  
  113.     int g = sizeof(mas2) / sizeof(mas2[0]), v;
  114.  
  115.  
  116.     BinaryInsertionSort(mas2, g);
  117.     for (i = 0; i < 11; i++)
  118.     {
  119.         cout << mas2[i] << " ";
  120.     }
  121.     cout << endl;
  122.     cout << "----------------------------------------------------------------" << endl;
  123.     srand(time(0));
  124.     int q;//shaker sorting
  125.     cout << "n:"; cin >> q;
  126.     int* mas3 = new int[q];
  127.     for (i = 0; i < q; i++)
  128.     {
  129.  
  130.         mas3[i] = rand() % 120;
  131.     }
  132.     for (i = 0; i < q; i++)
  133.     {
  134.         cout << "Enter element " << i + 1 << ": " << mas3[i] << endl;
  135.  
  136.     }
  137.     ShakerSort(mas3, q);
  138.     for (i = 0; i < q; i++)
  139.         cout << mas3[i] << " ";
  140.  
  141.     cout << endl;
  142.     delete[] mas;
  143.     delete[] mas3;
  144.     system("pause");
  145.  
  146.  
  147. }
Add Comment
Please, Sign In to add comment