fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. // Бульбашкове сортування (Bubble Sort)
  6. void bubbleSort(vector<int> arr) {
  7. int comparisons = 0, swaps = 0;
  8. int n = arr.size();
  9.  
  10. for (int i = 0; i < n; i++) {
  11. for (int j = 0; j < n - i - 1; j++) {
  12. comparisons++;
  13. if (arr[j] > arr[j + 1]) {
  14. swap(arr[j], arr[j + 1]);
  15. swaps++;
  16. }
  17. }
  18. }
  19.  
  20. cout << "\n Бульбашкове сортування:\nВідсортований масив: ";
  21. for (int num : arr) cout << num << " ";
  22. cout << "\nКількість порівнянь: " << comparisons;
  23. cout << "\nКількість перестановок: " << swaps << "\n";
  24. }
  25.  
  26. // Сортування вставками (Insertion Sort)
  27. void insertionSort(vector<int> arr) {
  28. int comparisons = 0, swaps = 0;
  29. int n = arr.size();
  30.  
  31. for (int i = 1; i < n; i++) {
  32. int key = arr[i];
  33. int j = i - 1;
  34.  
  35. while (j >= 0) {
  36. comparisons++;
  37. if (arr[j] > key) {
  38. arr[j + 1] = arr[j];
  39. swaps++;
  40. j--;
  41. } else {
  42. break;
  43. }
  44. }
  45. arr[j + 1] = key;
  46. }
  47.  
  48. cout << "\nСортування вставками:\nВідсортований масив: ";
  49. for (int num : arr) cout << num << " ";
  50. cout << "\nКількість порівнянь: " << comparisons;
  51. cout << "\nКількість перестановок: " << swaps << "\n";
  52. }
  53.  
  54.  
  55. int main() {
  56. vector<int> arr;
  57. int n, value;
  58.  
  59. cout << "Введіть кількість елементів: ";
  60. cin >> n;
  61.  
  62. cout << "Введіть елементи масиву:\n";
  63. for (int i = 0; i < n; i++) {
  64. cin >> value;
  65. arr.push_back(value);
  66. }
  67.  
  68. bubbleSort(arr);
  69. insertionSort(arr);
  70.  
  71. return 0;
  72. }
Success #stdin #stdout 0s 5312KB
stdin
5
10 2 5 14 2
stdout
Введіть кількість елементів: Введіть елементи масиву:

 Бульбашкове сортування:
Відсортований масив: 2 2 5 10 14 
Кількість порівнянь: 10
Кількість перестановок: 5

Сортування вставками:
Відсортований масив: 2 2 5 10 14 
Кількість порівнянь: 8
Кількість перестановок: 5