JAvaのクイックソート

2484 ワード

2つの形式を書いて、原理の差は多くなくて、すべて基数を探して、1つの終わりまで再帰します.しかし、細部と交換は異なる.
相関コード
package day20180728;

public class QuickSort{
    
    public static void quickSort(int[] arr,int lt,int rt)
    {
    //         ,    
        if(lt>=rt)
            return;
        
       int temp=arr[lt];
       int st=lt,end=rt;
       
       while(st=arr[st])
           {
               st++;
           }
           
           if(st

結果
           
11 6 8 0 33 78 65 22 
#########
           
11 6 8 0 33 78 65 22 
#########
   :3
        :
------****-------
0 6 8 11 33 78 65 22 ++++++++++
           
0 6 8 11 33 78 65 22 
#########
   :0
        :
------****-------
0 6 8 11 33 78 65 22 ++++++++++
           
0 6 8 11 33 78 65 22 
#########
   :1
        :
------****-------
0 6 8 11 33 78 65 22 ++++++++++
           
0 6 8 11 33 22 65 78 
#########
           
0 6 8 11 33 22 65 78 
#########
   :5
        :
------****-------
0 6 8 11 22 33 65 78 ++++++++++
           
0 6 8 11 22 33 65 78 
#########
   :6
        :
------****-------
0 6 8 11 22 33 65 78 ++++++++++
0 6 8 11 22 33 65 78 

もう1つのバージョンcodeは以下の通りです.
package day20180728;

public class qSort {
    
    
    public static void ksort(int[] arr,int left,int right)
    {
        if(left>=right)
            return ;
        int tag=arr[left];
        int i=left,j=right;
        
        while(i=arr[i])
            {
                i++;
            }
            
            if(i

結果
  i :2
        :
------////-------
0 8 11 22 33 78 65 66 /////////////
  i :0
        :
------////-------
0 8 11 22 33 78 65 66 /////////////
  i :3
        :
------////-------
0 8 11 22 33 78 65 66 /////////////
  i :4
        :
------////-------
0 8 11 22 33 78 65 66 /////////////
  i :7
        :
------////-------
0 8 11 22 33 66 65 78 /////////////
  i :6
        :
------////-------
0 8 11 22 33 65 66 78 /////////////
0 8 11 22 33 65 66 78 


急速な順序付けの設計は再帰に着いて、少し理解しにくくて、関連するものはネット上で多く少し調べることができます