1. 程式人生 > >選擇排序法、氣泡排序法、插入排序法、系統提供的底層sort方法排序之毫秒級比較

選擇排序法、氣泡排序法、插入排序法、系統提供的底層sort方法排序之毫秒級比較

我的程式碼:

package PlaneGame;
/**
* 選擇排序法、氣泡排序法、插入排序法、系統提供的底層sort方法排序之毫秒級比較
* @author Administrator
*/
import java.util.Arrays;
public class Newtest {
public static void main(String[]args){
int[]arr=new int[10000];
for(int i=0;i<arr.length;i++){
int num=(int)(Math.random()*arr.length);
arr[i]=num;
}
System.out.println("排序前:"+Arrays.toString(arr));
long StartTime=System.currentTimeMillis();
//氣泡排序法
/*for(int i=0;i<arr.length-1;i++){
for(int j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}*/
//選擇排序法
/*for(int i=0;i<arr.length-1;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}*/
//插入排序法
/*for(int i=1;i<arr.length;i++){
int temp=arr[i];
int j;
for(j=i-1;j>=0;j--){
if(temp<arr[j]){
arr[j+1]=arr[j];
}else{
break;
}
}
arr[j+1]=temp;
}*/
//系統提供的底層sort方法
//Arrays.sort(arr);
System.out.println("排序後:"+Arrays.toString(arr));
long EndTime=System.currentTimeMillis();
System.out.println("排序消耗的總時間為"+(EndTime-StartTime)+"毫秒");
}
}

結論:理論上和實際上是符合的,插入排序法是自己定義的三大排序法中最快的,當總得來說還是沒有作為系統自帶的底層來自於C語言的sort方法快。