Sorting in arrays
While sorting an array for ex: A[5]={1,4,5,3,2} the output must be 1,2,3,4,5 in ascending order. in using the concept of bubble sorting my output is 0,开发者_如何学Python1,2,3,4 what would be the problem in my code
int A[5]={1,5,3,2,4};
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(A[j]>A[j+1])
{
int t=A[j];
A[j]=A[j+1];
A[j+1]=t;
}
}
}
for(i=0;i<5;i++)
cout<<A[i];
You need to limit your inner loop to <4:
int A[5]={1,5,3,2,4};
for(int i=0;i<5;i++){
for(int j=0;j<4;j++){
if(A[j]>A[j+1])
{
int t=A[j];
A[j]=A[j+1];
A[j+1]=t;
}
}
}
for(i=0;i<5;i++)
cout<<A[i];
Why not use the STL sort?
#include <algorithm>
std::sort(A, A+5);
Perhaps you are printing i
instead of A[i]
in the printing loop, as in
for( int i = 0; i < N; i++ ) {
cout << i << ","; // by mistake, printing i instead of A[i]
}
Is there a reason you are doing bubble sort, other then trying to learn it? It's one of the slower sorts.
精彩评论