Advertisement
Thiff

Sorting + random

Nov 5th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.80 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.  
  8. using namespace std;
  9.  
  10. int rand32()
  11. {
  12.     return rand() * RAND_MAX + rand();
  13. }
  14.  
  15. TYPE randomVal(TYPE minR,TYPE maxR){
  16.     TYPE range = (maxR - minR);
  17.     TYPE div = RAND_MAX / range;
  18.     return minR +(rand() / div);
  19.  
  20. }
  21. void BubbleSort_asc (TYPE *arr, int arr_length)
  22. {
  23.     for (int i = 0; i < arr_length; ++i)
  24.     {
  25.         for (int j = 0; j < arr_length-i-1; ++j)
  26.         {
  27.             // Comparing consecutive data and switching values if value at j > j+1.
  28.             if (arr[j] > arr[j+1])
  29.             {
  30.                 arr[j] = arr[j]+arr[j+1];
  31.                 arr[j+1] = arr[j]-arr[j + 1];
  32.                 arr[j] = arr[j]-arr[j + 1];
  33.             }
  34.         }
  35.         // Value at n-i-1 will be maximum of all the values below this index.
  36.     }
  37. }
  38.  
  39. void BubbleSort_dsc (TYPE *arr, int arr_length)
  40. {
  41.     for (int i = 0; i < arr_length; ++i)
  42.     {
  43.         for (int j = 0; j < arr_length-i-1; ++j)
  44.         {
  45.             // Comparing consecutive data and switching values if value at j > j+1.
  46.             if (arr[j] < arr[j+1])
  47.             {
  48.                 arr[j] = arr[j]+arr[j+1];
  49.                 arr[j+1] = arr[j]-arr[j + 1];
  50.                 arr[j] = arr[j]-arr[j + 1];
  51.             }
  52.         }
  53.         // Value at n-i-1 will be maximum of all the values below this index.
  54.     }
  55. }
  56.  
  57. void SelectionSort_asc(TYPE *arr, int arr_length)
  58. {   TYPE temp;
  59.     for(int i = 0; i < arr_length; i++)
  60.     {
  61.         for(int j = i+1; j < arr_length; j++)
  62.         {
  63.             if(arr[i] > arr[j])
  64.             {
  65.                 temp = arr[i];
  66.                 arr[i] = arr[j];
  67.                 arr[j] = temp;
  68.             }
  69.         }
  70.     }
  71. }
  72. void SelectionSort_dsc(TYPE *arr, int arr_length)
  73. {   TYPE temp;
  74.     for(int i = 0; i < arr_length; i++)
  75.     {
  76.         for(int j = i+1; j < arr_length; j++)
  77.         {
  78.             if(arr[i] < arr[j])
  79.             {
  80.                 temp = arr[i];
  81.                 arr[i] = arr[j];
  82.                 arr[j] = temp;
  83.             }
  84.         }
  85.     }
  86. }
  87. void InsertionSort_asc(TYPE *arr, int arr_length)
  88. {
  89.    TYPE temp;
  90.    for (int i = 1; i < arr_length; i++)
  91.    {
  92.        temp = arr[i];
  93.        int j = i-1;
  94.  
  95.        while (j >= 0 && arr[j] > temp)
  96.        {
  97.            arr[j+1] = arr[j];
  98.            j = j-1;
  99.        }
  100.        arr[j+1] = temp;
  101.    }
  102. }
  103. void InsertionSort_dsc(TYPE *arr, int arr_length)
  104. {
  105.    TYPE temp;
  106.    for (int i = 1; i < arr_length; i++)
  107.    {
  108.        temp = arr[i];
  109.        int j = i-1;
  110.  
  111.        while (j >= 0 && arr[j] < temp)
  112.        {
  113.            arr[j+1] = arr[j];
  114.            j = j-1;
  115.        }
  116.        arr[j+1] = temp;
  117.    }
  118. }
  119. int main()
  120. {   srand((int)time(NULL));
  121.     int length;
  122.     int minR = 0;
  123.     int maxR = 10000;
  124.  
  125.     cout << "Enter number of elements " << endl;
  126.     cin >> length;
  127.  
  128.     TYPE *arr = new TYPE [length];
  129.     for(int i = 0; i < length; i++)
  130.     {
  131.         arr[i] = rand32() % (length * 10);
  132.     }
  133.  
  134.     InsertionSort_dsc(arr, length);
  135.  
  136.     // Display the sorted data.
  137.     cout << "Sorted array:" << endl;
  138.     for (int i = 0; i < length; i++)
  139.     {
  140.         cout << arr[i] << endl;
  141.     }
  142.     return 0;
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement