遍历
遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如

     double[] score = new double[5];Scanner input = new Scanner(System.in);for (int i = 0; i < score.length; i++) {System.out.println("请输入第" + (i + 1) + "位同学的成绩:");score[i] = input.nextDouble();}for (int i = 0; i < 5; i++) {System.out.println(score[i]);}

这个就是一个double 型的数组用for去遍历每个元素 而结束条件就是这个数组的最后一个数组 score.length就可以遍历这个数组了

求和
求和就是在遍历的基础上添加一个求和的计数器 就在在for外面定义一个和的变量 这个变量的初始值是0
这样就能达到求和的结果是正确的
求和的公式在for循环里面写这样的目的是因为求和也是在循环的往上加的过程
例如

     double sum = 0;int i;for (i = 0; i < score.length; i++) {sum = sum + score[i];}System.out.println(score.length + "位同学的成绩是" + sum);

这个就是求和的过程 其他的运算方法就是把这个符号更改下而已

极值
极值的目的就是求一个极端的值
方法就是假定数组里面的一个数据是最大的然后用其他的数据遍历他与他进行对比 如果新的数据值比这个定义的值大的话那么就替换他的这个位置然后继续遍历 遍历结束后就输出这个值就是最大的值或者最小的值  例如

double max = score[0];for (i = 0; i < score.length; i++) {if (score[i] > max) {  //这里的大于号变成小于号就可以求最小值了max = score[i];}}System.out.println(i + "位同学的最高成绩是" + max);

这个代码就是求一个极值而且是最大的内个

查找

这个功能就是查询当前的数组是否有你需要的值 就好像你去一个地方去找人是一个意思

查找用到了boolean变量 因为这个功能的目的就是找到与没找到 换句话来说就是 找到了就是真(或假) 没找到就是假(或真)
for循环里面写的if判断 
判断方法就是当用户输入的值与数组中的某一个值是一样的那么就输出 否则(else)就没找到 输出不输出随便你
还要判断下用boolean就可以做到 如果是真那么就跳出这个循环并且进入下一个循环 因为boolean在跳出的时候变化成真了 那么在下面的if里面就是以真的形式出现并且输出
例如

       boolean flag = false;System.out.println("请输入您要查找的分数:");double findScore = input.nextDouble();for (i = 0; i < score.length; i++) {if (score[i] == findScore) {flag = true;//变真了break;//跳出这个for循环进入下面的if循环}}if (flag) {//由于是上面的boolean变成真了 所以就进入这个if 如果没找到就跳刀下面的elseSystem.out.println("找到了您所要查找的分数。" + score[i]);} else {System.out.println("没有找到您所要查找的分数。");}

这个就是 
倒置
倒置的意思就是最后一个元素变成第一个元素第一个元素变成最后一个
过程就是折中取半
不遍历整个数组了遍历一半,那么就/2就可以 但是计算机数数的方法是从0开始的也就是说最后一个值里面是没有任何意义的 所以要在最后一个值那-1
并且还要定义一个空的变量  因为要用到三步换值(变量) 不定义也可以 
例如

      for (i = 0; i < score.length / 2; i++) {double temp = score[i]; //这里是空变量赋值 三步赋值第一步score[i] = score[score.length - 1 - i];//右边的值赋到左边那么右边就变成空的值score[score.length - 1 - i] = temp;//同上  但是这个temp是个临时的值所以他最后是空的没有}for (i = 0; i < score.length; i++) {System.out.println(score[i]);}

排序

排序是引用的JAVA自带的一个类 所以没有难度
例如

     Arrays.sort(score);//这个代码就是内个排序的类for (i = 0; i < score.length; i++) {System.out.println(score[i]);}

插入
插入的意思就是在这个数组中某一个地方插入一个变量(值)
但是一旦插入的这个变量进去那么就会对这个数组产生变化所以数组一定要空出多余的地方
并且要对插入进来的 数据进行判断,判断结束后还要跳出这个判断的if,判断的条件就是:输入进来的值大于数组里的某一个值并且小于这个值前面的那一个值(num[i]-1) 
替换这个值跳出
进入下一个循环 
例如

      int[] num = new int[6];for (i = 0; i < num.length; i++) {num[i] = input.nextInt();}Arrays.sort(num);System.out.println("输入您要插入的数:");int insert = input.nextInt();for (i = 0; i < num.length; i++) {if ((insert > num[i]) && (insert < num[i - 1])) {num[i] = insert;break;}}for (i = 0; i < num.length; i++) {System.out.println(num[i]);}

数组的7个算法100%全在遍历的过程 每个都是  每个算法里面都有一个for是在遍历

转载于:https://www.cnblogs.com/aikongmeng/archive/2013/05/25/3697437.html

java 基础知识-数组的7种算法(排序、求和、最值、遍历...)相关推荐

  1. Java基础功---数组的使用和算法

    目录 数组 默认初始化值 数组在内存中的存储 一维数组在内存的存储 二维数组在内存中的存储 数组算法 冒泡排序 选择排序 二分查找 数组 默认初始化值 char:虽然是字符型,但是初始化值为数值0(' ...

  2. Java基础知识(五) 字符串与数组

    Java基础知识 字符串与数组 1. 字符串的创建与存储的机制是什么 2. "==".equals和hashCode有什么区别 3. String.StringBuffer.Str ...

  3. Java基础知识 21(Set集合,HashSet集合以及它的三种遍历方式(迭代器,增强for循环,forEach),LinkedHashSet集合,TreeSet集合(自然排序法,比较器排序法))

    Java基础知识 21 Set集合 Set集合:一个不包含重复元素的Collection集合,元素不重复,List集合是允许元素重复的. Set接口的三个字类:HashSet(),LinkedHash ...

  4. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  5. 【java json基础】字符串转json json转字符串 json数组转换 【java基础知识】【实用】【一看就会】

    原文:[java json基础]字符串转json json转字符串 json数组转换 [java基础知识][实用][一看就会] 读书就是:从薄读厚,再从厚读薄的过程. 文比较长,各讲述如下: 若是新手 ...

  6. 【转】Java基础知识整理

    本博文内容参考相关博客以及<Java编程思想>整理而成,如有侵权,请联系博主. 转载请注明出处:http://www.cnblogs.com/BYRans/ PDF版下载链接:<Ja ...

  7. java 基础知识总结

    Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思 ...

  8. 【转】java基础知识总结

    Java基础知识总结 本博文内容参考相关博客以及<Java编程思想>整理而成,如有侵权,请联系博主. 转载请注明出处:http://www.cnblogs.com/BYRans/ PDF版 ...

  9. 超详细的Java面试题总结(二)之Java基础知识篇

    系列文章: 超详细的Java面试题总结(一)之Java基本知识 超详细的Java面试题总结(二)之Java基础知识篇 超详细的Java面试题总结(三)之Java集合篇常见问题 超详细的Java面试题总 ...

最新文章

  1. Python 实现自动化批量重打包Android Apps
  2. Selenium3+python自动化008-操作浏览器基本方法
  3. java单链表逆序输出_在数据结构单链表中如何实现倒序输出
  4. IoT Studio 有大事宣布
  5. kubernetes1.8.4 安装指南 (基于静态Pod方式安装)
  6. linux weblogic 引用antlr.jar,Linux環境下Weblogic部署應用的一些問題
  7. 面向.NET开发人员的Dapr——参考应用程序
  8. 元旦海报设计素材|节日气氛PNG元素,满满中国风
  9. 课节5:图神经网络算法(二)
  10. 神奇的margin之豆瓣豆瓣么么哒
  11. Openlayer:学习笔记之图标与提示信息
  12. Go程序设计语言1.1 hello,world
  13. 射频电路设计及PCB设计要点
  14. C#界面控件DotNetBar使用
  15. 数电Day06:主从触发器和边沿触发器,触发器的逻辑符号,时序波形
  16. linux挂载移动硬盘 格式化_Linux下挂载移动硬盘(NTFS格式)
  17. Dropping Balls
  18. Mac 安装Mactex教程
  19. 【论文解读】R-CNN 深入浅出理解目标检测开山之作
  20. python中换行符用法_python换行符是什么?

热门文章

  1. 接口测试--自定义断言设置
  2. php做商品预告,预告:关于php制作桌面软件的方案与未来规划
  3. 面试官问我:什么是JavaScript闭包,我该如何回答?
  4. java 过滤器 怎么创建_java如何创建过滤器
  5. Opencv_视频/摄像头加载视频,并进行边缘检测
  6. c mysql 返回自增id_mysql返回自增id
  7. php如何在微信跳转支付宝支付,微信支付成功了怎么跳转到我指定的信息提示页? - 码支付...
  8. 软件质量保证计划_质量保证QA与质量控制QC
  9. JAVA蓝桥杯:高精度算法
  10. 设计模式——单例模式(饿汉式、懒汉式和DCL)