fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6.  
  7. void pritnVector(const vector<int> & a){
  8. cout<<"vector ";
  9. for (int i = 0; i < a.size(); ++i){
  10. cout<<a[i]<<" ";
  11. }
  12. cout<<endl;
  13. }
  14.  
  15. void swap(vector<int> & a, int i, int j){
  16.  
  17. int temp=a[i];
  18. a[i]=a[j];
  19. for (int k = j; k>=i+2; --k){
  20. a[k]=a[k-1];
  21. }
  22. a[i+1]=temp;
  23. }
  24.  
  25.  
  26.  
  27. void getMaxNumber(vector<int>& a, int n, int k){
  28. if(n<=1)
  29. return;
  30.  
  31. int i=0;
  32. int maxi=0;
  33. int maxVal=a[i];
  34.  
  35. while(i<n-1 && k>0){
  36. for(int j=1; j<=k && (i+j)<n ; j++){
  37. if(a[i+j]>maxVal){
  38. maxVal=a[i+j];
  39. maxi=i+j;
  40. }
  41. }
  42.  
  43. if(maxi>0){
  44. swap(a, i, maxi);
  45. }
  46.  
  47. k-=(maxi-i);
  48. i++;
  49. }
  50. }
  51.  
  52.  
  53. int main(int argc, char const *argv[]){
  54.  
  55. vector<int> a={1,3,4,2,5,7,9};
  56. getMaxNumber(a, 7, 1);
  57. pritnVector(a);
  58.  
  59. vector<int> b={1,3,4,2,5,7,9};
  60. getMaxNumber(b, 7, 2);
  61. pritnVector(b);
  62.  
  63.  
  64. vector<int> c={1,3,4,2,5,7,9};
  65. getMaxNumber(c, 7, 3);
  66. pritnVector(c);
  67.  
  68. vector<int> d={1,3,4,0,5,7,9};
  69. getMaxNumber(d, 7, 3);
  70. pritnVector(d);
  71.  
  72. vector<int> e={1,3,4,0,5,7,9};
  73. getMaxNumber(e, 7, 4);
  74. pritnVector(e);
  75.  
  76. vector<int> f={9,8,7,6,5,4,3};
  77. getMaxNumber(f, 7, 4);
  78. pritnVector(f);
  79.  
  80. return 0;
  81. }
Success #stdin #stdout 0s 3476KB
stdin
Standard input is empty
stdout
vector 3 1 4 2 5 7 9 
vector 4 1 3 2 5 7 9 
vector 4 3 1 2 5 7 9 
vector 4 3 1 0 5 7 9 
vector 5 1 3 4 0 7 9 
vector 9 8 7 6 5 4 3