请教快速排序如何变成递减输出啊

请问快速排序怎么变成递减输出啊?
#include   <iostream>
#include   <iomanip>
#include   <stdio.h>
#include   <string>
using   namespace   std;

void   QuickSort(int   *pData,   int   left,   int   right)  
{  
int   i,   j;  
int   middle,   iTemp;  
i   =   left;  
j   =   right;  

middle   =   pData[(left   +   right)   /   2];   //求中间值  
do  
{  
while   ((pData[i]   <   middle)   &&   (i   <   right))   //从左扫描大于中值的数  
i++;  
while   ((pData[j]   >   middle)   &&   (j   >   left))   //从右扫描小于中值的数  
j--;  
if   (i   <=   j)   //找到了一对值  
{  
//交换  
iTemp   =   pData[i];  
pData[i]   =   pData[j];  
pData[j]   =   iTemp;  
i++;  
j--;  
}  
}   while   (i   <=   j)   ;   //如果两边扫描的下标交错,就停止(完成一次)  

//当左边部分有值(left <j),递归左半边  

if(left <j)  
QuickSort   (pData,left,j);  
//当右边部分有值(right> i),递归右半边  
if(right> i)  
QuickSort   (pData,i,right);  
}


void   main()
{
int   data[20]={34,43,67,6765,12,0,42,4,56,3,99,222,1,123,45,42,23,10,78,35};  
QuickSort(data,0,19);
for(int   i=0;i <20;i++)
{
cout < <data[i] < < '   ';
}

}

我改成
while   ((pData[i]   >   middle)   &&   (i   <   right))   //从左扫描大于中值的数  
i++;  
while   ((pData[j]   <middle)   &&   (j   >   left))   //从右扫描小于中值的数  
怎么没有成功排序?



------解决方案--------------------
程序本身没有任何问题,测试结果也和上面一样没有出错,不知道楼主用的是什么编译器..................