读书人

关于这个快速排序的代码,请高人们指教

发布时间: 2012-03-25 20:55:17 作者: rapoo

关于这个快速排序的代码,请高人们指教一下,怎么也不清楚是怎么回事
这个方法中的两个数组参数,一直没搞清楚为什么要用两个数组,谢谢达人们指教
void QuickSort(String[] pData,int[] pDataNum,int left,int right)
{
int i,j;
int iTemp;
String middle,strTemp;
i = left;
j = right;
middle = pData[(left+right)/2];
do{
while((pData[i].compareTo(middle) <0) && (i <right))
i++;
while((pData[j].compareTo(middle))> 0 && (j> left))
j--;
if(i <=j)
{
strTemp = pData[i];
pData[i] = pData[j];
pData[j] = strTemp;

iTemp = pDataNum[i];
pDataNum[i] = pDataNum[j];
pDataNum[j] = iTemp;

i++;
j--;
}
}while(i <=j);//如果两边扫描的下标交错,就停止(完成一次)

if(left <j)
QuickSort(pData,pDataNum,left,j);

if(right> i)
QuickSort(pData,pDataNum,i,right);
}


[解决办法]
根据pData的顺序调整pDataNum的顺序
[解决办法]
关注


[解决办法]
看我写的吧,里面有说明
http://blog.csdn.net/infon/archive/2007/04/13/1563920.aspx

读书人网 >J2SE开发

热点推荐