一般的なソートアルゴリズム(一)

5420 ワード

package com.ztc;

/** * Created by ztc on 16-5-13. */
public class sort {
    public static long print(int a[], int n ,int i){
        long atime=System.nanoTime();
        System.out.print(" "+i + " :");
        for(int j= 0; j" ");
        }
        System.out.println();
        long btime=System.nanoTime();
        return btime-atime;
    }

    /** *       . *     : *                  , *        ,    1    。 *  :      1              , *     2         ,          。 * @param a        * @param n      */
    public static void insertSort(int[] a,int n){
        long atime=System.nanoTime();
        long printTime=0;
        for(int i=1;ifor(int j=i-1;j>=0;j--){
                if(a[j]>a[j+1]){
                    int b=a[j + 1];a[j+1] = a[j];a[j]=b;
                }
            }
                  printTime+=print(a, n, i);
        }
        long btime=System.nanoTime();
        System.out.println("        :" + (btime - atime-printTime)+"ns");
    }

    /** *     . *     : *          ,                , *                     , *         ,      。 *  :                         ,      。 * @param a * @param n */
    public static void bubbleSort(int[] a,int n){
        long atime=System.nanoTime();
        long printTime=0;
        for(int i=1;ifor(int j=0;jif(a[j]>a[j+1]){
                    int b=a[j + 1];a[j+1] = a[j];a[j]=b;
                }
            }
            printTime+=print(a,n,i);
        }
        long btime=System.nanoTime();
        System.out.println("        :" + (btime - atime-printTime)+"ns");
    }

    private static int  getMin(int[] a,int n,int i){
        int k=i;
        for(int x=i+1;xif(a[x]return k;
}
/***  にソートを  します。*    :*ソートするグループの の で、*  (または  )の と1  の  の を  して  します。* りの の から  (または  )の2  の  との を して  します。*n-1  の  (  から2  の )とn  の  (  の )が  されるまで に  します。*@param a*@param n*/
public static void selectSort(int[] a,int n){
long atime=System.nanoTime();
long printTime=0;
for(int i=0;iint k=getMin(a,n,i);
int e=a[i];a[i]=a[k];a[k]=e;
printTime+=print(a,n,i);
}
long btime=System.nanoTime();
System.out.println(「ソート    の  :」+(btime-atime-printTime)+「ns」);
}
public static void main(String[] args){
int[] a=new int[]{6,4,3,1,5,2};
int[] b=new int[]{6,4,3,1,5,2};
int[] c=new int[]{6,4,3,1,5,2};
insertSort(a,a.length);
bubbleSort(b,b.length);
selectSort(c,c.length);
}
}