【JAVA】求出数组中的最大值解题思路

当我学到数组的时候,感觉老师说的好简单呀,但是一到实际练习的时候整个人都是蒙圈的,怎么就得出最大值了?百思不得其解,盯着代码看了大半天也没有答案,没有转过弯来,直到我用自己把代码翻译成文字之后,突然之间豁然开朗起来,分享下解题思路:

 问题:求出下列数组中的最值,也就是谁的值最大

        int array[] = {100, 22, 3232, 411, 225, 6};

捋一捋思路: 首先想到的是一个for循环,用第一个的值与第二个值进行比较,看看谁的值比较大,值大的留下,值小的淘汰,接着用if进行判断;有点类似于古时候的比武招亲,搭一个擂台,战斗力低的淘汰,战斗力高的留下准备迎接下一轮的挑战,解题思路有了,接下来就是逐个击破即可;

第一步:先搭建一个擂台,定义一个max,擂台谁先上?也就是索引为0战斗力为“100”的人先上,将这个数组赋值给“max”;

        int array[] = {100, 22, 3232, 411, 225, 6};
        int max = array[0];

第二步:for循环,一对一进行比较,第一个和第二个开始比,战斗力高的留下赋值给max,进行下一轮,战斗力低的已经被淘汰了,所以现在还差个判断语句if,要判断一下谁的战斗力高,所以来到了第三步

        int array[] = {100, 22, 3232, 411, 225, 6};
        int max = array[0];
        for (int i = 1; i < array.length; i++) {

        }

 第三步:if判断谁的值比较大

        int array[] = {100, 22, 3232, 411, 225, 6};
        int max = array[0];
        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
//              如果array[i]的值大于max值,则将该值留下赋值给max
            }
        }
        System.out.println("最大值=" + max);

 执行流程解析:

  1. 进入循环后,i = 1 ,i 作为一个变量当做数组的索引,i 小于数组的长度,大于或等于数组长度时停止循环;
  2. 循环第一次,i = 1,数组的索引为“1”,对应“1”的值为“22”,此时,max = 100, 22 > 100 ?  不大于,所以继续进入下一个循环;
  3. 循环第一次,i = 2,数组的索引为“2”,对应“2”的值为“3232”,此时,max = 100, 3232 > 100 ?  大于,满足条件,执行语句,现在max = 3232,保留新值继续进入下一个循环;
  4. 同理,继续进行比较,明显后续的三个“411”、“225”和“6”都不满足条件,所以最大值为“3232”
  5. 扩展一下,最大值有了,同理,最小值只需要把 array[i] > max  变更为  array[i] < max 谁小谁留下即可

你可能感兴趣的:(JAVA,java,idea,开发语言)