求数值型数组中元素的最大值、最小值、平均值、总值等

package com.mxf.test;
/*
* 题目:定义一个int型的一维数组,包含10个元素,赋值一些随机整数(两位数)
* 求出所有元素的最大值、最小值、和值、平均值并输出
*/
public class Test4 {
public static void main(String[] args) {
int[] arr = new int[10];
//2位数:10~99 99-10+1=90,+10
for(int i=0;i<arr.length;i++) {
arr[i] = (int)(Math.random()*90)+10;
}
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+"\t");
}
System.out.println();
//求数组元素的最大值
int max = arr[0];
for(int i=0;i<arr.length;i++) {
if(max<arr[i]) {
max = arr[i];
}
}
System.out.println("最大值为:"+max);
//求数组元素的最小值
int min = arr[0];
for(int i=0;i<arr.length;i++) {
if(min>arr[i]) {
min = arr[i];
}
}
System.out.println("最小值为:"+min);
//求数组元素的总和
int sum = 0;
double average = 0;
for(int i=0;i<arr.length;i++) {
sum += arr[i];
}
//求数组元素的平均值
average = (sum+0.0)/arr.length;
System.out.println("和值为:"+sum);
System.out.println("平均值为:"+average); } }

数组的复制、反转、查找(线性查找、二分法查找)

//1. 数组的复制,注意区分于数组之间的赋值(地址值)
public class Test5 {
public static void main(String[] args) {
int[] array1 = new int[] {2,3,5,7,11,13,17,19};
int[] array2 ;
array2 = new int[array1.length];
for(int i=0;i<array2.length;i++) {
array2[i]=array1[i];
}
//遍历
for(int i=0;i<array1.length;i++) {
System.out.print(array1[i]+" ");
}
System.out.println();
}
}
//2. 数组的反转
for(int i=0;i<array1.length/2;i++) {
int num = array1[i];
array1[i] = array1[array1.length-i-1];
array1[array1.length-i-1] = num;
}
//3.数组的查找
//3.1线性查找
int dest = 11;
boolean flag = true;
for(int i=0;i<array1.length;i++) {
if(array1[i]==dest) {
System.out.println("找到了指定的元素,位置为:"+i);
flag = false;
break;
}
}
if(flag) {
System.out.println("很抱歉,没有找到哦!");} //3.2二分法查找(熟悉——后续有现成的结构)前提:所要查找的数组必须有序【挺像数学中的二分法找最大值的】
//2,3,5,7,11,13,17,19
int dest1 = 17;
int head = 0;
int end = array1.length-1;
boolean isFlag = true;
while(head<=end) {
int mid = (head+end)/2;
if(dest1==array1[mid]) {
System.out.println("找到了指定的元素,位置为:"+mid);
isFlag = false;
break;
}else if(dest1>array1[mid]) {
head = mid+1;
}else {
end = mid-1;
}
}
if(isFlag) {
System.out.println("很抱歉,没有找到哦!");
}

Java数组的常见算法2的更多相关文章

  1. java 基本语法(十一) 数组(四)数组的常见算法

    1.数组的创建与元素赋值: 杨辉三角(二维数组).回形数(二维数组).6个数,1-30之间随机生成且不重复. 杨辉三角 public class YHSJ { public static void m ...

  2. Java数组的排序算法

    在Java中,实现数组的排序算法有很多,如冒泡排序法.选择排序法.直接插入法和快速排序法等.下面介绍几种排序算法的具体 实现. 本文引用文献:Java必须知道的300个问题. 1.冒泡排序法 1.1 ...

  3. 常见算法合集[java源码+持续更新中...]

    一.引子 本文搜集从各种资源上搜集高频面试算法,慢慢填充...每个算法都亲测可运行,原理有注释.Talk is cheap,show me the code! 走你~ 二.常见算法 2.1 判断单向链 ...

  4. [转载]Java数组扩容算法及Java对它的应用

    原文链接:http://www.cnblogs.com/gw811/archive/2012/10/07/2714252.html Java数组扩容的原理 1)Java数组对象的大小是固定不变的,数组 ...

  5. Java数组扩容算法及Java对它的应用

    1)Java数组对象的大小是固定不变的,数组对象是不可扩容的.利用数组复制方法可以变通的实现数组扩容.System.arraycopy()可以复制数组.Arrays.copyOf()可以简便的创建数组 ...

  6. Java数组的一些基本算法

    数组的一些算法问题:  排序:(升序)   选择排序:     求每一轮的最小值:再输出   冒泡排序:     相邻的两个数相比较,把两个数相比较,第一个大于好面的就交换位置   shell排序: ...

  7. java se系列(四) 函数、数组、排序算法、二分法、二维数组

    1 函数 1.1  数的概述 发现不断进行加法运算,为了提高代码的复用性,就把该功能独立封装成一段独立的小程序,当下次需要执行加法运算的时候,就可以直接调用这个段小程序即可,那么这种封装形形式的具体表 ...

  8. Java开发知识之Java数组

    Java开发知识之Java数组 一丶数组简介 首先,不管是Java 还是 C++ 还是其它语言.都有数组. (有可能叫法不同) 数组简而言之就是存储一段连续相同数据类型的数据结构 在Java中数组可以 ...

  9. 第3章 Java数组(上): 一维数组和二维数组

    3.数组及排序算法(2天) 3.1 数组的概述 2课时 3.2 一维数组的使用 3课时 3.3 多维数组的使用 3课时 3.4 数组中涉及到的常见算法 3课时 3.5 Arrays工具类的使用 3课时 ...

随机推荐

  1. LGP3244题解

    考虑正常 DAG 的有向生成树的方案数. 很明显发现,每个节点只需要挑一个父亲即可.方案数为 \(\prod_{i=2}^nd[i]\). 再考虑加上新边后新增的 DAG 数量. 将点分为两类.假设这 ...

  2. LGP6240题解

    题解 我们可以发现,背包有结合律. 也就是先加入元素 \(a\) 再加入元素 \(b\) 和 \(c\),与先加入元素 \(a\) 后再与只有元素 \(b\) 和元素 \(c\) 的背包合并,得到的背 ...

  3. ArcMap操作随记(4)

    1.统计各省份公路长度 [标识]→[汇总]→[视图][创建] 2.用户登录分配 [创建渔网]→[连接] 3.城市超市影响范围 [创建泰森多边形]→[标识]→[汇总] 4.三维可视化分析 [构造视线]→ ...

  4. 阿里云镜像站DNS——Chrome配置方法

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 DNS 简介 域名系统(服务)协议(DNS)是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送. 阿 ...

  5. Serialzers 序列化组件

    Serialzers 序列化组件 前言 当做前后端分离的项目时,JSON是一个轻量级的数据交互格式.所有我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿到数据进行序列化 Django ...

  6. 5月16日 python学习总结 DBUtils模块、orm 和 cookie、session、token

    一.DBUtils模块 介绍 The DBUtils suite is realized as a Python package containing two subsets of modules, ...

  7. MySQL知识补充(表字段操作、视图、触发器、事物、存储过程、内置函数、流程控制、索引、慢查询)

    今日内容概要 表字段操作补充(掌握) 视图(了解) 触发器(了解) 事务(掌握) 存储过程(了解) 内置函数(了解) 流程控制(了解) 索引(熟悉) 内容详细 1.表字段操作补充 # 1.添加表字段 ...

  8. 用ssh无密码登录远程linux

    登录linux常用的方式是:用户名+密码,多次输入密码非常不方便,所以推荐使用密钥登录,安全又方便,下面我说下怎么使用密钥登录. 生成密钥 使用密钥登录首先需要本地有ssh密钥 如果本地没有密钥,那么 ...

  9. XML常用解析API有哪几种?

    XML常用解析API有JAXP.JDOM.Dom4j等. JAXP是Java API for XML Processing的英文字头缩写,中文含义是:用于XML文档处理的使用Java语言编写的编程接口 ...

  10. ZooKeeper 面试题?

    ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群 中各个节点的状态根据节点提交的反馈进行下一步合理操作.最终,将简单易用 的接口和性能高效.功能稳定的系统提供给用户. ...