#include<bits/stdc++.h>
using namespace std;
void pass(vector<int>&A,int J,int I)
{
if(J==I)
{
return;
}
if(A[J]>A[J+1])
{
int temp = A[J];
A[J]= A[J+1];
A[J+1] = temp;
}
pass(A,J+1,I);
}
void bubbleSort(vector<int>&A,int n,int I)
{
if(I==n)
{
return;
}
pass(A,I=0,n-I);
bubbleSort(A,n,I+1);
}
int main()
{
int n,x;
cin>>n;
vector<int>A;
for(int i=0;i<n;i++)
{
cin>>x;
A.push_back(x);
}
bubbleSort(A,n-1,0);
for(int i=0;i<n;i++)
{
cout<<A[i]<<" ";
}
}```
Please use the below format to make your code more readable. And also, indent it accordingly. Unformatted code is difficult to read and makes it difficult to help you.
```C++ /*Your Code Here*/ ```
Ya, thanks for the formatting suggestion. Now since the code is properly readable, can you please look into what errors are there in the code?
so you actually wrote main() in void function ???
That was just a typing error while typing in the question in the new topic section.
Can you look into the main problem?
no bro im not coding right now . i think you could figured it out and learn on your own it really teaches you even if it takes time.
I think you need to start from here. Your logic of bubble sort is wrong. Try the above tutorial(convert it into recursive), and if still in doubt, I’ll see what I can do
Hint: Your code runs forever…
The thing is for recurssive case maybe the optimized case is not possible. So for normal bubble sort implementation recurssively, this is what i tried. And i studied bubble sort properly before asking the question. Iterative case was easy, but please look into the recurssive case here.
Okay I got the bug,
In the pass function second parameter you are always resetting I to 0 so your programme goes to infinite loop I=0,1,0,1,0,1…
so to fix your pass should be pass(A,0,n-I)
Okay you should pass n-I only my bad!!
in the pass function, instead of writing i=0, write 0 because it is making i equals to 0,Rest of the things are
correct.
Thanks for the help. This helped me clarify concept of Recurssion about how some values reset. Although I my code was perfectly fine except that i=0 case. Thanks again.
No problem, glad to help