zoukankan      html  css  js  c++  java
  • 难以理解的一个排序方法-冒泡排序。(新手)

    //创建的一个包名。

    package demo;
    //冒泡排序。

    //定义的一个类
    public class Test5 {

      //公共静态的主方法。
      public static void main(String[] args) {

        //创建一个数组。
        int[] arr = {22,14,53,6,34,56,2,61};
            //14 22 6 35 53 2 56 61

        //对数组进行排序(定义的调用方法)
        sort(arr);

        //定义的一个调用方法。(对完成排序的数组进行一次遍历并且打印)
        printStore(arr);
    }

      //调用对数组排序的方法。
      public static void sort(int[] arr) {

        //创建一个for循环。

        for(int i=0;i<arr.length-1;i++) {

          //嵌套一个for循环。
          for(int j=0;j<arr.length-i-1;j++) {

            //创建一个if语句。
            if(arr[j]>arr[j+1]) {
              int temp = arr[j];
              arr[j] = arr[j+1];
              arr[j+1] = temp;
    }
    }
    }
    }

      //调用遍历方法。
      public static void printStore(int[] arr) {

        //对数组进行一次遍历,然后进行打印。
        for(int i=0;i<arr.length;i++) {
          System.out.println(arr[i]);
    }

    }
    }

    =======在我同学的帮助下,我的理解有以下几点。=======

    1:arr.length-1是长度-1。

    2:arr.length-i-1 是减掉一个已经比较出来的最大的那个数,然后再在长度上减掉1。

    ex:

    数组内容  22,14,53,6,34,56,2,61

    比较内容  14, 6,53, 2,34,56,22,61

           6, 2,53,14,34,56,22,61

           2,6,53,14,34,56,22,61

      到这里,2和6就已经可以被剔除了。(这些数任然还在进行循环,剔除只是我个人理解而已)

            2,6,14,34,22,56,53,61

      到这里,14又被剔除了。

            2,6,14,22,34,56,53,61

      到这里,22也被剔除了。

             2,6,14,22,34,53,56,61

             2.6.14.22,34.53.56.61

    从上面咱们可以看出,61是已经比较出来的一个最大值。

    -i的意思就是减去61,不再在循环里和其他数作比较。

    3.if(arr[j]>arr[j+1]) 

    意思就是如果第一个数大于第二个数,就执行下面的内容。

    j+1的意思就是 让j和j旁边的数进行比较。

    4.之所以在for循环里加入了一个新值:int temp、是方便数值的互换。

    打个比方说,你有两只手,每个手都拿了一个杯子,这两个杯子都是满的,但是

    你想把左手杯的水倒在右手杯子里,这个时候,这个新值,就相当于别人递过来

    一只手,手里拿了一个空杯子,这样你是不是就可以对两个杯子里的水进行互换

    了?

  • 相关阅读:
    知识的本质
    福克斯保养注意事项及驾驶技巧
    转 网络编程
    Linux系统下安装 apache2.4的过程
    代码静态检查工具PCLint运用实践
    gcc编译系统
    量子计算机:决胜21世纪的利器
    关于ETL工具、方案的认识
    《HTTP: The Definitive Guide》读书笔记
    ArrayList(转用法)
  • 原文地址:https://www.cnblogs.com/lxr521/p/10524613.html
Copyright © 2011-2022 走看看