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 个回复

倒序浏览
俺是不是沙发?
回复 使用道具 举报
你是沙发。。。恭喜恭喜
回复 使用道具 举报
学习了,谢谢楼主
回复 使用道具 举报
赞一个!
回复 使用道具 举报
俺的帖子 ,难道沉了啊
回复 使用道具 举报
谢谢 学习啦
回复 使用道具 举报
Meitan 中级黑马 2015-10-9 19:20:33
8#
敲了很久吧,说的很详细,谢谢楼主
回复 使用道具 举报
Meitan 发表于 2015-10-9 19:20
敲了很久吧,说的很详细,谢谢楼主

是敲了挺长时间,其实最主要的还是脑子里因为一开始没弄清楚,所以一直在连过。
回复 使用道具 举报
前几天刚学习插入选择和冒泡排序,这几天感觉又有点陌生了
回复 使用道具 举报
霹雳三口组 发表于 2015-10-9 20:58
前几天刚学习插入选择和冒泡排序,这几天感觉又有点陌生了

其实理解了,最大最小的求值,再去看排序更容易点,
回复 使用道具 举报
看了之后确实没有那么迷糊了
回复 使用道具 举报
太强大了!!1
回复 使用道具 举报
前来学习~~~~
回复 使用道具 举报

还不休息啊 这么晚了
回复 使用道具 举报
注视非常详细,受教了,明白了很多自己没注意到的地方
回复 使用道具 举报
楼主,以后发帖可以插入代码~~看着好看
回复 使用道具 举报
上次插入代码成乱码了。-   -!
回复 使用道具 举报
内容很详实
回复 使用道具 举报
角标的部分表示没看懂
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马