一般的なソートアルゴリズム(一)
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);
}
}