//sorting by not moving the data but only ponter position
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
#include<malloc.h>
#define MAX 7
static int *ptr[MAX];
void sort(int A[]);
void display();
int main()
{
	int A[] = {11,89,65,2,5,9,1};
	
	
	int i;
	for(i=0;i<MAX;i++)
	ptr[i] = &(A[i]);

sort(A);
cout<<"\n"<<*ptr[0]<<"  "<<*ptr[1];
cout<<"\n AFTER SORTING - \n";
display();
getch();	
return 0;
}
void sort(int A[])
{
int i ;
  //int **a = &ptr[0];
	for(i=0;i<MAX-1;i++)
	{	
cout<<"\n case number = "<<i;
	for(int j = 0;j<MAX-i;j++)
	{   		
		if((*(ptr[j]))> (*(ptr[j+1]))) //this means A[j] > A[j+1]
		{
			int *a = ptr[j+1];
   			ptr[j+1] = ptr[j];
			ptr[j] = a;
			display();
			
		}
	}
	}//end of outer loop
}//end of function
void display()
{
     int i;
     cout<<"\n";
for(i=0;i<MAX;i++)
cout<<"  "<<*ptr[i];
//for(i=0;i<MAX;i++)
//cout<<" "<<ptr[i]; 

}

	
