java快速排序函数
类别: JAVA教程
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);
}
{
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);
}
- 上一篇: Java多线程中的两个问题
- 下一篇: Java 理论与实践: Web 层的状态复制
-= 资 源 教 程 =-
文 章 搜 索