java中的快速排序算法

这几天需要用到快速排序算法,虽然以前写过作业,但也有些遗忘,于是上网搜了一下,发现虽然很多,却或多或少都有些问题,尤其是数据越界,所以我自己调了一下,以下是经过测试的快速排序的程序,希望对大家有些帮助:
public class QSort { 
    
    /** 
     * @author WangYu 2008-05-29 
     * @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,算法,J#)