关于2个for循环和1个for循环关于冒泡排序的比较分析

public static void main(String[] args) {
int[] i = {1,3,23,14,35,11,23,111,56,34,90,37};
doSort2(i);
}
//一个for循环实现
public static void doSort(int[] src){
int len=src.length;
int temp;
int sum = 0;
for(int i=0;i<len;i++)
{
sum++;
if(i==0){
i=1;
}
if(src[i-1]>src[i])
{
temp=src[i-1];
src[i-1]=src[i];
src[i]=temp;
i=0;
}
}
System.out.println("------------------------------->"+sum);
for(int k=0;k<len;k++){
System.out.println(src[k]+" ----- ");
}
}
//2个for循环实现冒泡排序
public static void doSort2(int[] src){
int len = src.length;
int sum = 0;
for (int i = 0; i < len; i++) {
for (int j = 0; j < len; j++) {
sum++;
int temp;
if (src[i] < src[j]) {
temp = src[j];
src[j] = src[i];
src[i] = temp;
}
}
}
System.out.println("------------------------------->"+sum);
for (int i = 0; i <len; i++) {
System.out.print(src[i] + " ");
}

}


//在一定范围内,1个for循环的效率明显比2个for要高。一旦超过之后,会大幅度降低。
//如果可以做到在一个for循环中,动态的去除已经排序掉的那个数据,就for循环次数而言,确实会大幅度降低,但就整体效率而言,不曾验证,希望有兴趣的朋友进一步研究
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值