快速业务通道

Java编程那些事儿45—数组使用示例 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
} //获得最小值 for(int i = 1;i < score.length;i++){  //比较  if(min > score[i]){ min = score[i];  } } //计算平均分 double avg = (sum – max – min)/8.0; System.out.println(avg);

在该代码中,实现数组求和的思路和以前的一样,就是每次加一个元素,然后用得到的结果再和后续的元素依次相加。求最大值的思路是首先假设第一个元素最大,把score[0]赋值给max,然后使用max的值和后续依次比较,如果后续的元素比max大,则把该值赋值给max,然后再和后续的元素比较,求最小值的思路和最大值的思路一样。然后计算平均分就完成了题目的要求。

该代码虽然结构比较清晰,但是效率不高,为了追求效率,可以把以上三个循环合并起来,代码如下:

for(int i = 0;i < score.length;i++){  sum += score[i]; //求和  //获得最大值  if(max < score[i]){ max = score[i];}  //获得最小值  if(min > score[i]){ min = score[i];} }

这样虽然在结构上稍微复杂了一些,但是效率得到了改善。在实际编写程序时,一般会在功能书写完成以后,对代码进行优化,提高程序的执行效率。

Java编程那些事儿45—数组使用示例(3)

时间:2010-03-07 csdn 陈跃峰

6.3.4 判断数组元素是否重复

要求:判断一个数组中是否存在相同的元素,如果存在相同的元素则输出“重复”,否则输出“不重复”。

该题中如果需要判断数组中元素是否重复,则需要对数组中的元素进行两两比较,如果有任意一组元素相等,则该数组中的元素存在重复,如果任意一组元素都不想等,则表示数组中的元素不重复。

实现思路:假设数组中的元素不重复,两两比较数组中的元素,使用数组中的第一个元素和后续所有元素比较,接着使用数组中的第二个元素和后续元素比较,依次类推实现两两比较,如果有一组元素相同,则数组中存储重复,结束循环。把比较的结果存储在一个标志变量里,最后判断标志变量的值即可。

则实现的代码如下:

int[] n = {1,2,3,1,0}; boolean flag = true;  //假设不重复 for(int i = 0;i < n.length – 1;i++){ //循环开始元素  for(int j = i + 1;j < n.length;j++){ //循环后续所有元素   //如果相等,则重复   if(n[i] == n[j]){    flag = false;//设置标志变量为重复    break;   //结束循环   }  } } //判断标志变量 if(flag){  System.out.println(“不重复”); }else{  System.out.println(“重复”); }

在该代码中,flag变量存储是否重复,true代表不重复,false代表重复。外部循环中循环变量i代表第一个元素的下标,内部循环中循环变量j代表后续元素的下标,当i为零时和后续所有元素比较,然后当i为1时也和后续所有元素比较,依次类推,这样实现所有元素之间的两两比较。然后如果元素相同,则代表有重复,把flag变量的值置成flase,结束循环。最后根据flag变量的值就可以判断是否重复了。

Java编程那些事儿45—数组使用示例(4)

时间:2010-03-07 csdn 陈跃峰

6.3.5 判断数组是否对称

要求:判断数组元素是否对称。例如{1}、{1,2,0,2,1},{1,2,3,3,2,1}这样的都是对称数组。

该题中用于判断数组中的元素关于中心对称,也就是说数组中的第一个元素和最后一个元素相同,数组中的第二个元素和倒数第二个元素相同,依次类推,如果比较到中间,所有的元素都相同,则数组对称。

实现思路:把数组长度的一半作为循环的次数,假设变量i从0循环到数组的中心,则对应元素的下标就是数组长度-i-1,如果对应的元素有一组不相等则数组不对称,如果所有对应元素都相同,则对称。

则实现的代码如下:

int[] n = {1,2,0,2,1}; bool

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号