选择排序法、冒泡排序法、插入排序法、系统提供的底层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方法快。

猜你喜欢

转载自www.cnblogs.com/SUN99bk/p/9889067.html