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!!