java快速排序函數

www.edonkey2000.cn
========================================================
      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);
      }

發佈了24 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章