bool Compare(int ,int );
void QSSort(int *arr,int beg,int end)
{
int temp=arr[beg];
int i=beg;
int j=end;
while(i<j)
{
while(i<j&&Compare(arr[j],temp)==true)
j--;
if(i<j)
{
arr[i]=arr[j];
i++;
}
while(i<j&&Compare(temp,arr[i])==true)
i++;
if(i<j)
{
arr[j]=arr[i];
j--;
}
}
arr[i]=temp;
if(i>beg)QSSort(arr,beg,i-1);
if(i<end)QSSort(arr,i+1,end);
}
bool Compare(int i,int j)
{
char *pi=new char(10);
char *pj=new char(10);
itoa(i,pi,10);
itoa(j,pj,10);
return strcmp(pi,pj)>0?true:false;
}
int main(array<System::String ^> ^args)
{
int a[]={5,338,9,2,445,66,8,17,5,25,0};
QSSort(a,0,10);
for(int i=0;i<11;i++)
cout<<a[i]<<'-';
getchar();
return 0;
}