Hello!!

I want to modify the upper bubblesort in order to have a circular behaviour.Code:`void bubblesort(int n, double *x)`

{ int i, j;

for (i=1 ; i<=n-1 ; i++)

for (j=n-1 ; j>=i ; j--)

if (x[j-1] > x[j])

swapd(&x[j-1], &x[j]);

}

I tried this but it doesn't seem to work right:

In both cases swap is:Code:`void bubblesort(int n, double *x, int point)`

{

int i,j;

for(i=point+1 ; i!=point-1 ; i = (i+1)%n)

for(j=point-1 ; j!=i ; j = ((j<=0) ? (n-1) : (j-1)))

if (x[((j<=0) ? (n-1) : (j-1))] > x[j])

swap(&x[((j<=0) ? (n-1) : (j-1))], &x[j]);

VariableCode:`void swapd(double *a, double *b)`

{ double temp;

temp = *a;

*a = *b;

*b = temp; }

point, is the point from where I want to start sorting my array, from the element x[point] till x[point-1].

As u can see whenpointis equal to zero the circular bubblesort should work as the typical one (1st code example).

BUT mine doesn't work :( ..

Does anybody know what is wrong with it?

Thanks in advance!!