fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5.  
  6. template <typename T>
  7. void bubbleSort(T arr[], int n) {
  8. for (int i = 0; i < n - 1; i++) {
  9. for (int j = 0; j < n - 1 - i; j++) {
  10. if (arr[j] > arr[j + 1]) {
  11. T temp = arr[j];
  12. arr[j] = arr[j + 1];
  13. arr[j + 1] = temp;
  14. }
  15. }
  16. }
  17. }
  18.  
  19. template <typename T>
  20. void bubbleSort(vector<T>& arr, int n) {
  21. for (int i = 0; i < n - 1; i++) {
  22. for (int j = 0; j < n - 1 - i; j++) {
  23. if (arr[j] > arr[j + 1]) {
  24. T temp = arr[j];
  25. arr[j] = arr[j + 1];
  26. arr[j + 1] = temp;
  27. }
  28. }
  29. }
  30. }
  31.  
  32. template <typename T>
  33. void insertionSort(T arr[], int n) {
  34. for (int i = 1; i <= n - 1; i++) {
  35. T key = arr[i];
  36. int j = i - 1;
  37.  
  38. while (j >= 0 && arr[j] > key) {
  39. arr[j + 1] = arr[j];
  40. j = j - 1;
  41. }
  42.  
  43. arr[j + 1] = key;
  44. }
  45. }
  46.  
  47. template <typename T>
  48. void insertionSort(vector<T>& arr, int n) {
  49.  
  50. for (int i = 1; i <= n - 1; i++) {
  51. T key = arr[i];
  52. int j = i - 1;
  53.  
  54. while (j >= 0 && arr[j] > key) {
  55. arr[j + 1] = arr[j];
  56. j = j - 1;
  57. }
  58.  
  59. arr[j + 1] = key;
  60. }
  61. }
  62.  
  63.  
  64. template <typename T>
  65. void printArr(T arr[], int n) {
  66. for (int i = 0; i < n; i++) {
  67. cout << arr[i] << " ";
  68. }
  69. cout << endl;
  70. }
  71.  
  72. template <typename T>
  73. void printArr(vector<T>& arr, int n) {
  74. for (int i = 0; i < arr.size(); i++) {
  75. cout << arr[i] << " ";
  76. }
  77. cout << endl;
  78. }
  79.  
  80.  
  81. int main() {
  82. int arr[] = {5, 2, 4, 1, 3};
  83. int n = 5;
  84.  
  85. vector<int> vec = {7, 6, 8, 9, 5};
  86.  
  87. cout << "Изначальный масив ";
  88. printArr(arr, n);
  89.  
  90. cout << "Изначальный вектор ";
  91. printArr(vec,n);
  92.  
  93. // Сортування
  94. bubbleSort(arr, n);
  95. insertionSort(vec,n);
  96.  
  97. cout << "Bubble Sort ";
  98. printArr(arr, n);
  99.  
  100. cout << "Insertion Sort ";
  101. printArr(vec,n);
  102.  
  103. return 0;
  104. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
Изначальный масив 5 2 4 1 3 
Изначальный вектор 7 6 8 9 5 
Bubble Sort 1 2 3 4 5 
Insertion Sort 5 6 7 8 9