Advertisement
Thiff

SortingAPPS_upd1

Nov 5th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.54 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include <algorithm>
  6. #define TYPE double
  7. #define LENGTH_LIMIT 50000
  8.  
  9. using namespace std;
  10.  
  11. struct thread_argument
  12. {
  13.     int id;                 // user identification
  14.     int from, length;       // data range
  15.     TYPE *data;             // array
  16.     TYPE max;               // result
  17. };
  18.  
  19. int rand32()
  20. {
  21.     srand((int)time(NULL));
  22.     return rand() * RAND_MAX + rand();
  23. }
  24.  
  25. TYPE randomVal(TYPE minR,TYPE maxR){
  26.     srand((int)time(NULL));
  27.     TYPE range = (maxR - minR);
  28.     TYPE div = RAND_MAX / range;
  29.     return minR +(rand() / div);
  30.  
  31. }
  32. void fill_array(TYPE *arr, int start, int end)
  33. {
  34.     for (int i = start; i < end; i++)
  35.     {
  36.         arr[i] = rand32() % (end * 10);  //LENGTH = atoi( arg[ 1 ] );
  37.     }
  38. }
  39. void BubbleSort_dsc(TYPE *arr, int start, int end){
  40.     TYPE tmp;
  41.     for(int i = start; i < end; i++)
  42.     {
  43.         for(int j = start; j < end - (i-start+1); j++)
  44.         {
  45.             if(arr[j+1] > arr[j])
  46.             {
  47.                 tmp = arr[j + 1];
  48.                 arr[j + 1] = arr[j];
  49.                 arr[j] = tmp;
  50.             }
  51.         }
  52.     }
  53.  
  54. }
  55.  
  56. void BubbleSort_asc(TYPE *arr, int start, int end){
  57.     TYPE tmp;
  58.     for(int i = start; i < end; i++)
  59.     {
  60.         for(int j = start; j < end - (i-start+1); j++)
  61.         {
  62.             if(arr[j+1] < arr[j])
  63.             {
  64.                 tmp = arr[j + 1];
  65.                 arr[j + 1] = arr[j];
  66.                 arr[j] = tmp;
  67.             }
  68.         }
  69.     }
  70.  
  71. }
  72.  
  73. void SelectionSort_asc(TYPE *arr, int start, int end)
  74. {   TYPE temp;
  75.     for(int i = start; i < end; i++)
  76.     {
  77.         for(int j = i+1; j < end; j++)
  78.         {
  79.             if(arr[i] > arr[j])
  80.             {
  81.                 temp = arr[i];
  82.                 arr[i] = arr[j];
  83.                 arr[j] = temp;
  84.             }
  85.         }
  86.     }
  87. }
  88. void SelectionSort_dsc(TYPE *arr, int start, int end)
  89. {   TYPE temp;
  90.     for(int i = start; i < end; i++)
  91.     {
  92.         for(int j = i+1; j < end; j++)
  93.         {
  94.             if(arr[i] < arr[j])
  95.             {
  96.                 temp = arr[i];
  97.                 arr[i] = arr[j];
  98.                 arr[j] = temp;
  99.             }
  100.         }
  101.     }
  102. }
  103.  
  104. void InsertionSort_asc(TYPE *arr, int start, int end)
  105. {
  106.    TYPE temp;
  107.    for (int i = start + 1; i < end; i++)
  108.    {
  109.        temp = arr[i];
  110.        int j = i-1;
  111.  
  112.        while (j >= 0 && arr[j] > temp)
  113.        {
  114.            arr[j+1] = arr[j];
  115.            j = j-1;
  116.        }
  117.        arr[j+1] = temp;
  118.    }
  119. }
  120.  
  121. void InsertionSort_dsc(TYPE *arr, int start, int end)
  122. {
  123.    TYPE temp;
  124.    for (int i = start + 1; i < end; i++)
  125.    {
  126.        temp = arr[i];
  127.        int j = i-1;
  128.  
  129.        while (j >= 0 && arr[j] < temp)
  130.        {
  131.            arr[j+1] = arr[j];
  132.            j = j-1;
  133.        }
  134.        arr[j+1] = temp;
  135.    }
  136. }
  137.  
  138. void merge_array(TYPE *arr, int start1, int end1 , int start2 , int end2)
  139. {
  140.     TYPE *final_array = new TYPE [(end1-start1)+(end2-start2) ];
  141.     int i = 0;
  142.     while (start1 != end1 && start2 != end2)
  143.     {
  144.         if (arr[start1] < arr[start2])
  145.         {
  146.             final_array[i] = arr[start1];
  147.             start1++;
  148.             i++;
  149.         }
  150.         else
  151.         {
  152.             start2++;
  153.             i++;
  154.         }
  155.  
  156.     }
  157. }
  158. int main(int na, char **arg )
  159. {  
  160.     int length;
  161.     int minR = 0;
  162.     int maxR = 10000;
  163.  
  164.     cout << "Enter number of elements " << endl;
  165.     cin >> length; //vymenit za length = atoi(arg[1])
  166.  
  167.     TYPE *arr = new TYPE [length];
  168.     fill_array(arr,0, length);
  169.     InsertionSort_dsc(arr,0,length);
  170.  
  171.     // Display the sorted data.
  172.     cout << "Sorted array:" << endl;
  173.     for (int i = 0; i < length; i++)
  174.     {
  175.         cout << arr[i] << endl;
  176.     }
  177.     return 0;
  178. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement