A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

我们随便定义一个求最大值哈{1,2,3,4,5,6} 求数组中最大值  方法一:取值的是数组里的元素                                 // int[]arr={1,2,3,4,5,6}     1(元素)的角标是0(角标从0开始)   
class ArrayDemo                                                                                                       arr[0]=1 : 就是0的角标是元素1 哦。
      {
          public static int geyMax(int[]arr)    //首先确定数组类型,很明显是整数类型。所以选int ,同时明确目标就是求最大值哈,所以我们搞个变量getMax(函数)
        {
                int max =arr[0] ;   //定位变量,因为我们需要一个个挨个比大小,所以我们先定义个变量,随便取数组里的元素就好
               for (x=1;x<arr.length;x++) //遍历一次数组哦。  arr.length  是数组长度
            {
                 if(int[x]>max) //该准备的东西都准备好了, 包括我们定义了变量,现在我们要做的就是,我们本身的max 也就是arr[0] 和数组里别的元素比较
                max = arr[x] ;  //如果被比的数比我们这个大,那么变量就储存那个大的!如  max= 1   和元素里的 2比了, max:    1<2,那么现在max =2 咯><
             }
               return max ;
                    }              //函数搞完了, 我们把他调用一下, 证明可以运行哈
            
             public static void main(String[]args)   //主函数哈
           {
                int[]arr={1,2,3,4,5,6}   //arr数组里的元素
                int max = getMax(arr)    //意思就是调用上面的东西,偷懒方式,复用性,比较方便使用   就是说求max 就等于上面的结果  ,如果没有错是的话 “6”
              {
                   System.out.printlm("max="+max)   //输出语句。
                   }
        }
}


{1,2,3,4,5,6} 求数组中最大值 的方法二 :取值的是数组里的角标     *-*-是与上面的不同点
class ArrayDemo_2

    {
         public static int geyMax_2(int[]arr)    //首先确定数组类型,很明显是整数类型。所以选int ,同时明确目标就是求最大值哈,所以我们搞个变量getMax(函数)
        {
                int max =0 ;   //定位变量,因为我们需要一个个挨个比大小,所以我们先定义个变量,但因为是0 ,虽然没有错误,但是他代表的是“角标”哦!*-*
               for (x=1;x<arr.length;x++) //遍历一次数组哦。  arr.length  是数组长度
            {
                 if(int[x]>arr[max]) //和上面不同的是,因为我们定义的是角标,所以在这里千万要记得和比较的也是角标哦!及是 arr[max]    *-*
                max = arr[x] ;  //如果被比的数比我们这个大,那么变量就储存那个大的!如  max= 1   和元素里的 2比了, max:    1<2,那么现在max =2 咯><
             }
               return arr[max] ; //记得是arr[max]哦!就是反馈角标值!    *-*
                    }              //函数搞完了, 我们把他调用一下, 证明可以运行哈



              public static void main(String[]args)   //主函数
           {
                int[]arr={1,2,3,4,5,6}   //arr数组里的元素
                int max = getMax_2(arr)    //意思就是调用上面的东西,偷懒方式,复用性,比较方便使用   就是说求max 就等于上面的结果  ,如果没有错是的话 “6”
              {
                   System.out.printlm("max="+max)   //输出语句。
                   }
        }
}


{1,2,3,4,5,6} 求数组中最小值      不同点  *-*标示哈
class ArrayDemo                                                                                                
      {
          public static int geyMin(int[]arr)    //首先确定数组类型,很明显是整数类型。所以选int ,同时明确目标就是求最“小”值哈,所以我们搞个变量getMin(函数)
        {
                int min =arr[0] ;   //定位变量,因为我们需要一个个挨个比大小,所以我们先定义个变量,随便取数组里的元素就好
               for (x=1;x<arr.length;x++) //遍历一次数组哦。  arr.length  是数组长度
            {
                 if(int[x]<min) //*-*小于 该准备的东西都准备好了, 包括我们定义了变量,现在我们要做的就是,我们本身的max 也就是arr[0] 和数组里别的元素比较
                min = arr[x] ;  //如果被比的数比我们这个大,那么变量就储存那个大的!如  max= 1   和元素里的 2比了, max:    1<2,那么现在max =2 咯><
             }
               return min ;
                    }              //函数搞完了, 我们把他调用一下, 证明可以运行哈
            
             public static void main(String[]args)   //主函数哈
           {
                int[]arr={1,2,3,4,5,6}   //arr数组里的元素
                int min = getMin(arr)    //意思就是调用上面的东西,偷懒方式,复用性,比较方便使用   就是说求max 就等于上面的结果  ,如果没有错是的话 “6”
              {
                   System.out.printlm("min="+min)   //输出语句。
                   }
        }
}

第二种方法也是角标的,这里就不在重复打印了。
/*
在以上这些中 ,我们用到了 for 循环的遍历(for x=1(初始化值);x,arr.length(作用域,作用范围);x++(自增)一个for循环的基本构成) if语句  if(条件表达式)-输出语句  还有数组的基本认知,和定义,这里其实普通的数组arr[]={....} 后面还有二维数组哦arr[][]  .忘了忘了, 还有 函数哈,
*/


   求最值的概念基本不会有太多变化,有可能出现的变数大多在类型上,因为类型毕竟不少嘛,但是int 类型还是较多的。
   这个最值我看了一次视频,一次笔记,却在脑子里过了5-10次。
   感觉,做编程是的先有思路,然后在根据思路去用代码实现,但是同时我们思考不通的时候也可以,也可以从代码中判断一个人的思路,然后在去捋一捋。你或许就没那么迷惑了。
   
   亲们,等待下次俺把选择排序,冒泡排序吃透了,在给大家继续福利哈。

22 个回复

正序浏览
不是应该换角标么,这样不就和前面一样了么?
回复 使用道具 举报
不错,,,顶一下
回复 使用道具 举报
tianweidong 发表于 2015-10-11 10:45
角标的部分表示没看懂

我帮你理解下吧,  我们一般 取  max=arr[x]  他代表的是数组里的元素  max=x  是元素所在的角标位,但是在后面的if 中 我们还是需要( arr[x] >arr[max])    max=arr[x]
回复 使用道具 举报
角标的部分表示没看懂
回复 使用道具 举报
内容很详实
回复 使用道具 举报
上次插入代码成乱码了。-   -!
回复 使用道具 举报
楼主,以后发帖可以插入代码~~看着好看
回复 使用道具 举报
注视非常详细,受教了,明白了很多自己没注意到的地方
回复 使用道具 举报

还不休息啊 这么晚了
回复 使用道具 举报
前来学习~~~~
回复 使用道具 举报
太强大了!!1
回复 使用道具 举报
看了之后确实没有那么迷糊了
回复 使用道具 举报
霹雳三口组 发表于 2015-10-9 20:58
前几天刚学习插入选择和冒泡排序,这几天感觉又有点陌生了

其实理解了,最大最小的求值,再去看排序更容易点,
回复 使用道具 举报
前几天刚学习插入选择和冒泡排序,这几天感觉又有点陌生了
回复 使用道具 举报
Meitan 发表于 2015-10-9 19:20
敲了很久吧,说的很详细,谢谢楼主

是敲了挺长时间,其实最主要的还是脑子里因为一开始没弄清楚,所以一直在连过。
回复 使用道具 举报
Meitan 中级黑马 2015-10-9 19:20:33
8#
敲了很久吧,说的很详细,谢谢楼主
回复 使用道具 举报
谢谢 学习啦
回复 使用道具 举报
俺的帖子 ,难道沉了啊
回复 使用道具 举报
赞一个!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马