public class QSort {
/**
*
* @param pData 需要排序的数组
* @param left 左边的位置,初始值为0
* @param right 右边的位置,初始值为数组长度
*/
public static void QuickSort(int[] pData,int left,int right)
{
int i,j;
int middle,temp;
i = left;
j = right;
middle = pData[left];
while(true)
{
while((++i)<right-1 && pData[i]<middle);
while((--j)>left && pData[j]>middle);
if(i>=j)
break;
temp = pData[i];
pData[i] = pData[j];
pData[j] = temp;
}
pData[left] = pData[j];
pData[j] = middle;
if(left<j)
QuickSort(pData,left,j);
if(right>i)
QuickSort(pData,i,right);
}
public static void main(String[] args){
int[] pData = new int[10];
for(int i = 0; i< 10; i++)
pData[i] = (int)(Math.random()*100);
for(int i = 0; i<pData.length; i++)
System.out.print(pData[i]+" ");
QSort.QuickSort(pData, 0, pData.length);
System.out.println("\n***********************");
for(int i = 0; i<pData.length; i++)
System.out.print(pData[i]+" ");
}
}
程序灵魂 之 快速排序算法(Java实现)
最新推荐文章于 2024-08-21 11:22:17 发布