avr39ripe

arrTwoPartSortInsert

Nov 17th, 2020
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.27 KB | None | 0 0
  1. #include <iostream>
  2. #include <ctime>
  3.  
  4. void randomizeArr(int arr[], int arrSize, int minVal, int maxVal)
  5. {
  6.     for (int i{ 0 }; i < arrSize; ++i)
  7.     {
  8.         arr[i] = rand() % (maxVal - minVal) + minVal;
  9.     }
  10. }
  11.  
  12. void printArr(int arr[], int arrSize )
  13. {
  14.     for (int i{ 0 }; i < arrSize; ++i)
  15.     {
  16.         std::cout << arr[i] << ' ';
  17.     }
  18.     std::cout << '\n';
  19. }
  20.  
  21. void sortInsArr(int arr[], int arrSize, int begin, int end, bool ascending = true )
  22. {
  23.     int tmp;
  24.     for (int insPos{ begin + 1 }; insPos < end; ++insPos)
  25.     {
  26.         for (int testIns{ insPos }; testIns > begin; --testIns)
  27.         {
  28.             if ((ascending and arr[testIns] < arr[testIns - 1]) or (!ascending and arr[testIns] > arr[testIns - 1]))
  29.             {
  30.                 tmp = arr[testIns - 1];
  31.                 arr[testIns - 1] = arr[testIns];
  32.                 arr[testIns] = tmp;
  33.             }
  34.         }
  35.     }
  36. }
  37.  
  38. int main()
  39. {
  40.     srand(time(0));
  41.  
  42.     const int minVal{ 0 };
  43.     const int maxVal{ 99 };
  44.  
  45.     const int arrSize{ 10 };
  46.     int arr[arrSize];
  47.  
  48.  
  49.     randomizeArr(arr,arrSize, minVal, maxVal);
  50.     std::cout << "Original array: ";
  51.     printArr(arr, arrSize);
  52.     sortInsArr(arr, arrSize, 0, arrSize/2, false);
  53.     sortInsArr(arr, arrSize, arrSize/2, arrSize, true);
  54.     std::cout << "Sorted array: ";
  55.     printArr(arr, arrSize);
  56.     return 0;
  57. }
  58.  
Advertisement
Add Comment
Please, Sign In to add comment