常见对象(数组高级冒泡排序)

数组的遍历输出---拼接

    package day13;

public class MaoPao {
    public static void main(String[] args) {
        //定义一个数组
        int [] arry = {23,98,21,34,78};
        //调用遍历功能进行遍历输出
        //void类型的功能--可采取直接调用---方法名.(传入的参数)
        show(arry);
    }

    //编写功能
    //两个明确
    //返回值类型----void型(不确定型)----参数列表(数组)
    public  static void show(int [] arry){
        //首先定义左边的方括号【
        //依然采用拼接的方法
        System.out.print("[");
          for(int x=0;x< arry.length;x++){
             if(x== arry.length-1){
                 //拼接最后一个元素
                 System.out.print(arry[x]+"]");
             }else{
                 System.out.print(arry[x]+",");
             }
          }
    }
}

第一次比较 

public class MaoPao {
    public static void main(String[] args) {
        //定义一个数组
        int [] arry = {23,98,21,34,78};
        //调用遍历功能进行遍历输出
        //void类型的功能--可采取直接调用---方法名.(传入的参数)
        //排序前
        show(arry);

        //数组中的元素值进行第一次比较
        for(int x=0;x<arry.length-1;x++){
               //开始进行元素的比较
              //如果前一位大于后一位则互换位置
              if(arry[x]>arry[x+1]){
                  int temp = arry[x];
                  arry[x]=arry[x+1];
                  arry[x+1]=temp;
              }

        }
        show(arry);
    }

 //编写功能
    //两个明确
    //返回值类型----void型(不确定型)----参数列表(数组)
    public  static void show(int [] arry){
        //首先定义左边的方括号【
        //依然采用拼接的方法
        System.out.print("[");
          for(int x=0;x< arry.length;x++){
             if(x== arry.length-1){
                 //拼接最后一个元素
                 System.out.print(arry[x]+"]");
             }else{
                 System.out.print(arry[x]+",");
             }
          }
        System.out.println();
    }
}

优化改进

 

package day13;

public class MaoPao {
    public static void main(String[] args) {
        //定义一个数组
        int [] arry = {23,98,21,34,8};
        //调用遍历功能进行遍历输出
        //void类型的功能--可采取直接调用---方法名.(传入的参数)
        //排序前
        show(arry);

       //----------------------------------改进优化

        //首先通过前两次的比较分析发现---进行for循环时只有比较范围的数组的长度有改变其余没有改变
        //确定数组的比较次数为数组长度数-1--此循环为外循环
        //其中内for循环的数组的长度变化--是每比较一次,数组中的比较的最后一个元素不再参与比较-- 
        //故每次减一
        //数组的比较范围规律刚好和外层循环的比较次数一致---故使用
        for(int a =0;a< arry.length-1;a++){
            for(int x=0;x<arry.length-1-a;x++){
                //开始进行元素的比较
                //如果前一位大于后一位则互换位置
                if(arry[x]>arry[x+1]){
                    int temp = arry[x];
                    arry[x]=arry[x+1];
                    arry[x+1]=temp;
                }

            }
        }
        show(arry);

//编写功能---数组的遍历功能
    //两个明确
    //返回值类型----void型(不确定型)----参数列表(数组)
    public  static void show(int [] arry){
        //首先定义左边的方括号【
        //依然采用拼接的方法
        System.out.print("[");
          for(int x=0;x< arry.length;x++){
             if(x== arry.length-1){
                 //拼接最后一个元素
                 System.out.print(arry[x]+"]");
             }else{
                 System.out.print(arry[x]+",");
             }
          }
        System.out.println();
    }

功能调用版 

 

  package day13;

    public class MaoPao {
        public static void main(String[] args) {
            //定义一个数组
            int [] arry = {23,98,21,34,8};
         //调用功能方法
        //实现数组的冒泡排序
        show2(abc);
        //排序完毕后--调用遍历功能对排序后的数组进行遍历
        show(abc);

//数组遍历
     //编写功能
    //两个明确
    //返回值类型----void型(不确定型)----参数列表(数组)
    public  static void show(int [] arry){
        //首先定义左边的方括号【
        //依然采用拼接的方法
        System.out.print("[");
          for(int x=0;x< arry.length;x++){
             if(x== arry.length-1){
                 //拼接最后一个元素
                 System.out.print(arry[x]+"]");
             }else{
                 System.out.print(arry[x]+",");
             }
          }
        System.out.println();
    }

//如果进行多个数组的冒泡排序则只需调用功能
    //定义功能两个明确
    //返回值类型----void----参数列表---数组
    public static void show2(int [] abc){
        //外层循环控制整个比较的次数---数组整体比较次数为--数组长度-1
        for(int x=0;x< abc.length-1;x++){
            //内层的循环比较进行判断
            //每次比较--得到的最大值不再参与下一次的比较了
            // --所以每次控制的遍历范围都要减一
            for(int y=0;y< abc.length-1-x;y++){
                //循环内的判断条件---两两进行比较
                //如果前者比后者大则将前者和后者的值进行互换---
                //互换后再进行与下一个数据元素的比较
                //如果不大于则再进行下一位的比较
                if(abc[y]>abc[y+1]) {
                    int temp = abc[y];
                    abc[y]=abc[y+1];
                    abc[y+1]=temp;
                }
            }
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值