This bubble sort is kinda freaks me out. I got it two other ways with Number of comparisons = 48 and 81 but this one ....


Data item in original order

2 6 4 8 10 12 89 68 45 37

after passing 0 : 2 4 6 8 10 12 68 45 37 89
after passing 1 : 2 4 6 8 10 12 45 37 68
after passing 2 : 2 4 6 8 10 12 37 45
after passing 3 : 2 4 6 8 10 12 37
after passing 4 : 2 4 6 8 10 12
after passing 5 : 2 4 6 8 10
after passing 6 : 2 4 6 8
after passing 7 : 2 4 6
after passing 8 : 2 4



Data items in ascending order
2 4 6 8 10 12 37 45 68 89
Number of comparisons = 24
Press any key to continue



part of my code


for (int i = SIZE-1; i >= 0; i--)
{
for (int j = 1; j <= i; j++)
{
if (a[j-1] > a[j])
{
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
numberOfComp++; //// [b]this is what i want to change [b]
}


Regards.


__________________
Ok...



The Code is


#include <iostream>



using std::cout;
using std::endl;

#include <iomanip>
using std::setw;

#include <cstdlib>
#include <ctime>

int main()
{

const int SIZE =10;
int a[SIZE]={2,6,4,8,10,12,89,68,45,37};
int numberOfComp=0,temp,counter=10,coun=0;

cout <<"Data item in original order\n";

for(int b=0;b<SIZE;++b)
cout <<setw(4)<<a;

cout <<"\n\n";


for (int i = SIZE-1; i >= 0; i--)
{
for (int j = 1; j <= i; j++)
{
if (a[j-1] > a[j])
{
temp = a[j-1];
a[j-1] = a[j];
a[j] = temp;
}
numberOfComp++;
}

if(coun<9)
{
cout << "after passing " << coun <<" : ";

for(int o=0;o<counter;o++)
cout << a[o]<<" ";

coun++;
counter--;
}
cout<<endl;

}

cout <<"\n\nData items in ascending order\n";

for(int j=0;j<SIZE;j++)
cout <<setw(4)<<a[j];

cout << "\nNumber of comparisons = " << numberOfComp<<endl;

return 0;

}