java 插入排序和冒泡排序研究

本文通过实验对比了冒泡排序和插入排序两种基本排序算法的时间效率。在不同规模的数据集上进行了测试,结果显示对于大规模数据,插入排序明显优于冒泡排序。

今天公司不是很忙,就回顾了一下以前的冒泡排序和插入排序

package chen;
import java.util.Date;
public class Sort {

/**
* 冒泡排序
* @param list
* @author chenpengye
*/
public void sort(int[] list){
long begain=new Date().getTime();
for(int i=0;i<list.length;i++){
for(int j=0;j<list.length-i-1;j++){
if(list[j]>list[j+1]){
int temp=list[j];
list[j]=list[j+1];
list[j+1]=temp;
}
}
}
long end=new Date().getTime();
long result=end-begain;
System.out.println("冒泡排序时间:"+result+" mm");
/*for(int i=0;i<list.length;i++){
System.out.println(list[i]);
}*/
}
public static void main(String[] args) {
int[] list={11,6,2,9,1,4};
int[] data=new int[100000];
for(int i=0;i<100;i++){
data[i]=Math.round((float)Math.random()*1000000);
//System.out.println(data[i]);
}
Sort sort=new Sort();
//冒泡
sort.sort(data);
//插入
sort.insertSort(data);
}

/**
* 插入排序
* @param data
* @author chenpengye
*/
public void insertSort(int[] data){

int i,j;
long start=new Date().getTime();
for(i=1;i<data.length;i++){

int temp=data[i];
for(j=i;j>0&&data[j-1]>temp;j--){
//System.out.println("before:"+j);
data[j]=data[j-1];
}
//System.out.println("after:"+j);
data[j]=temp;
}
long end=new Date().getTime();
long res=end-start;
System.out.println("插入排序时间:"+res+" mm");
/*for(int m=0;m<data.length;m++){
System.out.print(data[m]+" ");
}*/
}

}

测试1: 数组个数:10000

冒泡排序时间:296 mm
插入排序时间:0 mm

测试1: 数组个数:100000

冒泡排序时间:29406 mm
插入排序时间:16 mm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值