Advertisement
avr39ripe

SBU21SortBuble

Jul 18th, 2020
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.25 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. template <typename T>
  4. void printArr(T arr[], int arrSize)
  5. {
  6.     for (int i{ 0 }; i < arrSize; ++i)
  7.     {
  8.         std::cout << arr[i] << ' ';
  9.     }
  10.     std::cout << '\n';
  11. }
  12.  
  13.  
  14. template <typename T>
  15. void sortArr(T arr[], int arrSize)
  16. {
  17.     int minIdx{ 0 };
  18.  
  19.    // printArr(arr, arrSize);
  20.  
  21.     for (int head{ 0 }; head < arrSize; head++)
  22.     {
  23.         minIdx = head;
  24.         for (int minHead = head; minHead < arrSize; minHead++)
  25.         {
  26.             if (arr[minHead] <= arr[minIdx])
  27.             {
  28.                 minIdx = minHead;
  29.             }
  30.         }
  31.  
  32.         if (arr[head] != arr[minIdx])
  33.         {
  34.             T tmp = arr[minIdx];
  35.             arr[minIdx] = arr[head];
  36.             arr[head] = tmp;
  37.  
  38.             printArr(arr, arrSize);
  39.         }
  40.     }
  41.  
  42.    // printArr(arr, arrSize);
  43.  
  44. }
  45.  
  46. template <typename T>
  47. void sortMin(T arr[], int arrSize)
  48. {
  49.     int minElIdx{ 0 };
  50.     T tmp;
  51.  
  52.     for (int i{ 0 }; i < arrSize; ++i)
  53.     {
  54.         minElIdx = i;
  55.  
  56.         for (int minIdx{ i } ; minIdx < arrSize; ++minIdx)
  57.         {
  58.             minElIdx = arr[minElIdx] >= arr[minIdx] ? minIdx : minElIdx;
  59.         }
  60.  
  61.         if (arr[i] != arr[minElIdx])
  62.         {
  63.             tmp = arr[i];
  64.             arr[i] = arr[minElIdx];
  65.             arr[minElIdx] = tmp;
  66.  
  67.             printArr(arr, arrSize);
  68.         }
  69.     }
  70. }
  71.  
  72. template <typename T>
  73. void sortBuble(T arr[], int arrSize)
  74. {
  75.     T tmp;
  76.  
  77.     for (int head{ 0 }; head < arrSize; ++head)
  78.     {
  79.         for (int tail{ arrSize - 1 }; tail > head; --tail)
  80.         {
  81.             if (arr[tail] < arr[head])
  82.             {
  83.                 tmp = arr[head];
  84.                 arr[head] = arr[tail];
  85.                 arr[tail] = tmp;
  86.  
  87.                 printArr(arr, arrSize);
  88.             }
  89.         }
  90.     }
  91. }
  92.  
  93. int main()
  94. {
  95.     const int arrSize{ 10 };
  96.     int arr[arrSize]{2,4,3,2,6,7,11,0,1,5};
  97.     char str[arrSize]{ 'a','d','e','c','q','z','x','p','n','f' };
  98.     //int arr[arrSize]{1,2,3,4,5,6,7,8,9,10 };
  99.     //int arr[arrSize]{0,0,0,0,0,0,0,0,0,0 };
  100.  
  101.     //printArr(str, arrSize);
  102.  
  103.     //sortBuble(str, arrSize);
  104.  
  105.     //printArr(str, arrSize);
  106.  
  107.  
  108.     printArr(arr, arrSize);
  109.  
  110.     sortBuble(arr, arrSize);
  111.  
  112.     printArr(arr, arrSize);
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement