当前位置:   article > 正文

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

java求一组数据的最大值

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

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

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

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

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

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

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

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

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

  1. int array[] = {100, 22, 3232, 411, 225, 6};
  2. int max = array[0];
  3. for (int i = 1; i < array.length; i++) {
  4. if (array[i] > max) {
  5. max = array[i];
  6. // 如果array[i]的值大于max值,则将该值留下赋值给max
  7. }
  8. }
  9. 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 谁小谁留下即可

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/793452
推荐阅读
相关标签
  

闽ICP备14008679号