遍历

遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用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 如果没找到就跳刀下面的else
System.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自带的一个类 所以没有难度 例如

插入

插入的意思就是在这个数组中某一个地方插入一个变量(值),但是一旦插入的这个变量进去那么就会对这个数组产生变化所以数组一定要空出多余的地方,并且要对插入进来的 数据进行判断,判断结束后还要跳出这个判断的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]);
}

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

  1. JAVA基础知识之多线程——三种实现多线程的方法及区别

    所有JAVA线程都必须是Thread或其子类的实例. 继承Thread类创建线程 步骤如下, 定义Thead子类并实现run()方法,run()是线程执行体 创建此子类实例对象,即创建了线程对象 调用 ...

  2. java基础知识—数组

    1.数组:是一个变量,存储相同数据类型的一组数据. 2.数据的优点:减少代码量.易查找. 3.数组的使用步骤: 1)声明数组:int scores []: 2)开辟空间:scores = new in ...

  3. java基础知识回顾之javaIO类--File类应用:递归深度遍历文件

    代码如下: package com.lp.ecjtu.File.FileDeepList; import java.io.File; public class FileDeepList { /** * ...

  4. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

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

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

  6. Java基础知识总结(超级经典)

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

  7. 毕向东—Java基础知识总结(超级经典)

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

  8. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  9. java基础知识精华

    转载:https://www.jianshu.com/p/6c078abb720f java基础知识 java内存模型 java运行时数据区域 hashMap 如何解决冲突 存储方式 冲突达到一定数量 ...

随机推荐

  1. 基于epoll封装的事件回调miniserver

    epoll技术前两节已经阐述过了,目前主要做一下封装,很多epoll的服务器都是采用事件回调方式处理, 其实并没有什么复杂的,我慢慢给大家阐述下原理. 在networking.h和networking ...

  2. mysql 中delete和trncate区别

    mysql中删除表记录delete from和truncate table的用法区别: MySQL中有两种删除表中记录的方法:(1)delete from语句,(2)truncate table语句. ...

  3. 关于C#微信公众号开发的前言说明

    本人是昨天开始接触微信公众号开发的,昨天看一天官方文档,基本上晕乎乎的,刚开始接触这个真的有点困难,特别是C#在这方面的资料不多,不如php java方面的资料全. 所以我准备每天写一点关于C#微信开 ...

  4. Bootstrap 按钮组

    连在一起的按钮:.btn-group <div class="btn-group" role="group"> <button class=& ...

  5. OpenCV---像素运算

    像素运算 分为算术运算和逻辑运算 算术运算: 加减乘除 调节亮度 调整对比度 逻辑运算: 与或非 遮罩层控制 一:算术运算 import cv2 as cv import numpy as np de ...

  6. 在web.xml中添加servlet报错问题

    出现这种问题的原因是因为servlet-name标签中没有名称,如果错误出现在servlet上,也是一样,补充servlet-name名称即可.如下图

  7. 说说asp.net中的异常处理和日志追踪

    关于异常的处理想必大家都了解try{}catch(){}finally{},这里就不再讲了.通过在VS里的"调试"-"异常",在弹出的异常对话框里的Common ...

  8. onblur & onchange

    本文地址:http://www.cnblogs.com/veinyin/p/7606914.html  两者均可用于验证是否输入数据 onblur : 表示不再是焦点,是 onfocus 的相反事件, ...

  9. 爬虫实战--基于requests和beautifulsoup的妹子网图片爬取(福利哦!)

    #coding=utf-8 import requests from bs4 import BeautifulSoup import os all_url = 'http://www.mzitu.co ...

  10. php的发展历史

    php最初就是为了快速构建一个web页面而迅速被大家广为接受的.它的好处是在代码中能内嵌html的代码,从而让程序员能再一个页面中同时写html代码和php代码就能生成一个web页面. 这篇文章用时间 ...