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

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. 堆优化Dijkstra算法

    但是,我们会发现刚刚讲的朴素Dijkstra算法(高情商:朴素 : 低情商: 低效)的套路不适用于稀疏图,很容易会爆时间: 所以,我们要对其中的一些操作进行优化,首先我们发现找到里起始点最近的点去更新 ...

  2. 痞子衡嵌入式:IAR内部C-SPY调试组件配套宏文件(.mac)用法介绍

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是IAR内部C-SPY调试组件配套宏文件(.mac)用法. 痞子衡之前写过一篇 <JLink Script文件基础及其在IAR下调用 ...

  3. C# WinForm 解决子窗体放大后,子窗体图标放大的问题

    解决子窗体放大后,子窗体的图标占用主窗体的菜单栏的问题. C#子窗体最大化时, 那个图标跑到主窗体的前面去了, 造成界面不统一也不美观. 所以需要进行处理, 只要有主窗体的菜单ItemAdded事件中 ...

  4. 老徐和阿珍的故事:CAP是什么?超级爱放P吗?

    人物背景: 老徐,男,本名徐福贵,从事Java相关研发工作多年,职场老油条,摸鱼小能手,虽然岁数不大但长的比较着急,人称老徐.据说之前炒某币败光了所有家产,甚至现在还有欠债. 阿珍,女,本名陈家珍,刚 ...

  5. strcpy、strncpy 和安全的strncpy_s

    strcpy和strncpy摘于linux 内核源码的/lib/string.c char *self_strcpy(char *dest, const char *src) { char *tmp ...

  6. Linux C申请内存三种基本方式

    一份代码可以知道具体方式和原理: int main() { int stack_a; int stack_b; static int static_c; static int static_d; in ...

  7. 如何快速开发基于Winform的应用系统

    在我们实际业务开发中,从头开发一个应用系统,不管是基于BS的前端项目,还是基于Winform的CS应用系统,都是由容易到复杂,逐步演化的一个开发过程,如果我们基于一定基础上,并配合一些配套的开发工具, ...

  8. java 基础知识(四)

    自己写一个简单的Map 清浅池塘 程序员,专栏:Java那些事儿唯一作者,咨询前请先点详细资料   130 人赞同了该文章 许多许多年以前,在自学Java的时候,笔者曾经写过一个简单的Map,当年很有 ...

  9. Linux 系统下你关注过哪些内核参数,说说你知道的?

    Tcp/ip io cpu memorynet.ipv4.tcp_syncookies = 1#启用syncookiesnet.ipv4.tcp_max_syn_backlog = 8192#SYN队 ...

  10. Mybatis 的一级、二级缓存?

    1)一级缓存: 基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该 Session 中的所有 C ...