java初学之冒泡排序and选择排序

冒泡与选择其最终的区别是效率(减少计算机的资源消耗)
public class Study{
    public static void main(String[] args){
        int[] arr={33,44,55,77,66,99,88};
        int replace=0;
        int bj=0;
       for(int i=0;i<arr.length-1;i++){             
            for(int j=0;j<arr.length-1;j++){
                if(arr[j]>arr[j+1]){
                    int t=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=t;
                    replace++;
                }    
                bj++;    
            }    
        }
        System.out.println("冒泡排序for里if内替换的次数:"+replace);
        System.out.println("冒泡排序for循环比较的次数:"+bj);
//以上为冒泡排序
//以下为选择排序    
        for(int i=0;i<arr.length-1;i++){
            for(int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    int t=arr[j];
                    arr[i]=arr[j];
                    arr[j]=t;
                    replace++;
                }    
                bj++;    
            }    
        }
        System.out.println("选择排序for里if内替换的次数:"+replace);
        System.out.println("选择排序for循环比较的次数:"+bj);
//选择排序比冒泡排序更有效率,交换和比较次数减少。
    }
}    

代码方面的区别:
冒泡排序是 内for循环各自自身变量和变量+1之间的替换和比较;
选择排序是 设定内for循环的初始变量为外for 循环初始值+1;(比如内j外i,而j=i+1);
理解方面的区别:
ps:我不太明白为什么名字叫选择排序,可能也只是个名字而已。
当然名称只是个代表,个人认为效率较冒泡更高的缘由是  内外for变量实行了交互,大大缩减了运行时间,提高了效率。
(eg.一个不太恰当的例子。甲乙在同一条路上相对而行,产生交互。其总路程等于二者的速度之和乘以时间。“选择”;
甲乙不在同一条路上相对而行,其总路程等于甲速度乘时间+乙速度乘时间“冒泡”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值