JAVA 정렬 알고리즘 의 빠 른 정렬

5932 단어 JavaSE
JAVA 정렬 알고리즘 의 빠 른 정렬
기본 사상:
                      ,
                         ,
                    ,
             ,
              .

알고리즘 소개
1.                 ,   key, key=a[0];
2.        ,i,j,i = 0;j = a.length -1, i       
   ,j           ;
3. key       ,    j      ,  key    
a[j],  key   a[j-1]   ,     key      ,   
a[0]=key4.     key,            ,     , a[0] key
   ,  a[0]    key,  a[1]   key   ,      
  i,a[i]>key,   a[i]   key    
5.key      keykeykey6. key1 5key1 5

특징:
O(n^2O(nlonn)

     :
      :O(logn)
      :O(n)

자바 코드 구현
package com.lanou3g;

public class demo04 {
    public static void main(String[] args) {
        int[] a = {25,1,5,7,3,99,9,6,0,2,14,9,77,12,33};//    
        sort(a,0,14);//  sor  ,       ,    ,    

    }
    public static void sort(int arr[],int low,int high) {
        int l = low;   //l      
        int h = high;  //      
        int key = arr[low];  //key    
        while (l < h ) {   //        , key               
            while(l < h && key <= arr[h]) {
                h --;  //      key    
            }
            if(l < h) {  //  key a[h]  
                int temp = arr[h];
                arr[h] = arr[l];
                arr[l] = temp;  
                l++;  //     ,l++,  a[l]      key,      ,  i+1
            }
            while(l < h && arr[l] <= key) {
                l ++;   //      key   
            }
            if(l < h) { //     ,  key a[i]  
                int temp = arr[h];
                arr[h] = arr[l];
                arr[l] = temp;
                h--; //h      key,        ,  h 1
            }
        }

        if(l > low)   //  l==h,a[l]==a[h]==key
          sort(arr, low,l-1);  // key           sort
        if(h// key         sort
            sort(arr, h+1, high);
        for(int i = 0;i <= 14;i++) { //    
             System.out.print(arr[i]+" ");
        }
        System.out.println();
     }

}

결어

좋은 웹페이지 즐겨찾기