fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5. int b_comparisons = 0;
  6. int i_comparisons = 0;
  7. int i_swaps=0;
  8. int b_swaps=0;
  9.  
  10. template <typename T>
  11. void bubleSort(T arr[],int n){
  12. for (int i = 0;i<n-1;i++){
  13. for (int j=0;j<n-1-i;j++){
  14. if (arr[j]>arr[j+1]){
  15. T temp=arr[j];
  16. arr[j]=arr[j+1];
  17. arr[j+1]=temp;
  18.  
  19. }
  20. }
  21. }
  22. }
  23.  
  24. template <typename T>
  25. void instSort(T arr[],int n) {
  26. for (int i = 1; i < n; i++) {
  27. T key = arr[i];
  28. int j = i - 1;
  29.  
  30. while (j >= 0 && arr[j] > key) {
  31. i_comparisons++;
  32. arr[j + 1] = arr[j];
  33. j = j - 1;
  34. i_swaps++;
  35. }
  36.  
  37. arr[j + 1] = key;
  38. i_swaps++;
  39. }
  40. }
  41. template<typename T>
  42. void printArr(T arr[],int n){
  43. for (int i=0;i<n;i++){
  44. cout<<arr[i]<<" ";
  45. }
  46. }
  47.  
  48.  
  49.  
  50. int main() {
  51. int n=4;
  52. double arr[n]={2.5,5.3,5.2,3};
  53. int arr2[n]={3,4,7,1};
  54.  
  55. cout<<"Бульбашкове"<<endl;
  56. bubleSort(arr,n);
  57. printArr(arr,n);
  58.  
  59. cout<<endl<< "Кількість перестановок " << b_swaps<<endl;
  60.  
  61. cout<< "Вставками "<<endl;
  62. instSort(arr2,n);
  63. printArr(arr2,n);
  64. cout << endl<<"Кількість перестановок " << i_swaps<<endl;
  65.  
  66. return 0;
  67. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
Бульбашкове
2.5 3 5.2 5.3 
Кількість перестановок 0
Вставками 
1 3 4 7 
Кількість перестановок 6