Advertisement
Bertran_rz

Untitled

Oct 6th, 2021
650
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. //сортируем
  7. void SortBy(int arr[], int size, bool desc)
  8. {
  9.     for (int i = 0; i < size; i++)
  10.         for (int j = 0; j < size - 1 - i; j++)
  11.             if (arr[j] > arr[j + 1] and desc)
  12.                 swap(arr[j], arr[j + 1]);
  13.             else if (arr[j] < arr[j + 1] and !desc)
  14.                 swap(arr[j], arr[j + 1]);
  15. }
  16.  
  17. void SortByInc(int arr[], int size)
  18. {
  19.     SortBy(arr, size, true);
  20. }
  21.  
  22. void SortByDec(int arr[], int size)
  23. {
  24.     SortBy(arr, size, false);
  25. }
  26.  
  27. //выбираем
  28. void (*Choise(int size))(int[],int)
  29. {
  30.     if (size < 10)
  31.         return SortByInc;
  32.     else
  33.         return SortByDec;
  34. }
  35.  
  36. //Вспомогательные штуки
  37.  
  38. void fillRandomValue(int arr[], int size, int max)
  39. {
  40.     for (int i = 0; i < size; i++)
  41.         arr[i] = rand() % max;
  42. }
  43.  
  44. void show(int arr[], int size)
  45. {
  46.     for (int i = 0; i < size; i++)
  47.         cout << arr[i] << " ";
  48.     cout << endl;
  49. }
  50.  
  51.  
  52. int main()
  53. {
  54.     srand(time(0));
  55.  
  56.     int size = rand()%20 + 1;
  57.  
  58.     cout << size << endl << endl;
  59.  
  60.     int* DynamicArray = new int[size];
  61.  
  62.     fillRandomValue(DynamicArray, size, 100);
  63.  
  64.     void (*sort)(int[], int) = Choise(size);
  65.  
  66.     sort(DynamicArray, size);
  67.  
  68.     show(DynamicArray, size);
  69.  
  70. }
  71.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement