数组中元素的求和

public class T02 {
public static void main(String[] args) {
int[][]arr=new int[][]{{1,2,3,4,5},{1,2,3,5},{8,9,7}};
int sum=0;
for(int i=0;i< arr.length;i++){
for(int j=0;j<arr[i].length;j++){
sum=arr[i][j]+sum;
}
}
System.out.println("sum="+sum);
}
}
//和为50

使用二维数组打印一个10行的杨辉三角

public class T02 {
public static void main(String[] args) {
//声明并且初始化数组
int[][]arr=new int[10][];
//给数组的元素赋值
for(int i=0;i< arr.length;i++){
arr[i]=new int[i+1];
arr[i][0]=arr[i][i]=1;
if(i>1){
for(int k=1;k<arr[i].length-1;k++){
arr[i][k]=arr[i-1][k-1]+arr[i-1][k];
}
}
}
//遍历数组
for(int i=0;i< arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}

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

public class T03 {
public static void main(String[] args) {
int[] arr=new int[10];
for(int i=0;i< arr.length;i++){
arr[i]=(int)Math.random()*((99-10+1)+10);
//[a,b]中的随机数的公式:Math.readom()*((b-a+1)+a).
//注意这里出来的为double类型。
}
//求最大值
int maximum=0;
for(int i=0;i< arr.length;i++){
if(maximum<arr[i]){
maximum=arr[i];
}
}
System.out.println("最大值为:"+maximum);
//求最小值
int minimum=arr[0];
for(int i=1;i< arr.length;i++){
if(minimum>arr[i]){
minimum=arr[i];
}
}
System.out.println("最大值为:"+minimum);
//求和
int sum=0;
for(int i=1;i< arr.length;i++){
sum=sum+arr[i];
}
System.out.println("sum:"+sum);
//求平均数
System.out.println("平均数为:"+sum/ arr.length);
}
}

*使用简单数组
(1)创建一个名为T04的类,在main()方法中声明array1和array2两个变量
他们是int[]类型的数组。
(2)使用大括号{},把array1初始化为8个素数:2,3,5,7,11,13,17,19。
(3)显示array1的内容。
(4)赋值array2变量等于array1,修改array2中的偶索引元素,使其等于索引值(如array[0]=0, array[2]=2)。打印出array1。*
*思考:array1和array2是什么关系?
拓展:修改题目,实现array2对array1数组的复制

public class T04 {
public static void main(String[] args) {
int[] array1,array2;
array1=new int[]{2,3,5,7,11,13,17,19};
for(int i=0;i< array1.length;i++){
System.out.print(array1[i]+"\t");
}
     //赋值array1变量等于array2
     //不能称作数组的复制
array2=array1;
for(int i=0;i< array1.length;i++){
if(i%2==0){
array2[i]=i;
}
}
System.out.println();
System.out.println("******************************************");
for(int i=0;i< array1.length;i++){
System.out.print(array1[i]+"\t");
}
}
}

(1)array1与array2的地址值一样,都指向了堆空间唯一的数组实体

(2)

 for(int i=0;i< array1.length;i++){
array2[i]=array1[i];
}

数组的反转

public class T05 {
public static void main(String[] args) {
int[]arr=new int[]{1,2,3,4,5,6,7,8,9};
for(int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println();
for(int i=0;i< arr.length;i++){
if(i< arr.length-1-i){
int a=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=a;
}
}
for(int i=0;i< arr.length;i++){
System.out.print(arr[i]+"\t");
}
}
}

方法2

 int i=0;
int j=0;
for(i=0,j= arr.length-1;i<j;i++,j--){
int a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}

线性查找

import java.util.Scanner;

public class T06 {
public static void main(String[] args) {
int[]arr=new int[]{1,2,3,4,5,6,7,8,9};
Scanner s = new Scanner(System.in);
System.out.print("请输入你要找的值:");
int k= s.nextInt();
for(int i=0;i< arr.length;i++){
if(k==arr[i]){
System.out.println("找到了,下标是:"+i);
break;
} else{
System.out.println("找不到");
}
}
}
}

二分法查找

//前提必须是在有序的条件下

例子:先看一下从小到大的

import java.util.Scanner;

public class T07 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int a= s.nextInt();
int[]arr=new int[]{1,2,3,4,6,7,8,9,10};
int left=0;
int right= arr.length-1;
boolean is=true;
while(left<=right){
int average=(int)(left+right)/2;
if(arr[average]>a){
right=average-1;
} else if(a==arr[average]){
System.out.println("找到了,下标是:"+average);
is=false;
} else {
left = average + 1;
// }if(left==right){
// System.out.println("没有找到");
// is=false;
}
}
if(is){
System.out.println("很遗憾没有找到");
}
}
}

冒泡排序

public class T08 {
public static void main(String[] args) {
int[]arr=new int[]{33,55,2,6,-8,-5,66,1,63};
for(int i=0;i< arr.length-1;i++){
for(int j=0;j< arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
int a=arr[j];
arr[j]=arr[j+1];
arr[j+1]=a;
}
}
}
for(int i=0;i< arr.length;i++) {
System.out.println(arr[i]);
}
}
}

												

Java数组经典例题的更多相关文章

  1. Java构造方法经典例题

    1.在程序中,经常要对时间进行操作,但是并没有时间类型的数据.那么,我们可以自己实现一个时间类,来满足程序中的需要. 定义名为MyTime的类,其中应有三个整型成员:时(hour),分(minute) ...

  2. Java之线程通信的应用:经典例题:生产者/消费者问题

    /** * 线程通信的应用:经典例题:生产者/消费者问题 * * 生产者(Productor)将产品交给店员(Clerk),而消费者(Customer)从店员处取走产品, * 店员一次只能持有固定数量 ...

  3. Java数组及其内存分配

    几乎所有的程序设计语言都支持数组.Java也不例外.当我们需要多个类型相同的变量的时候,就考虑定义一个数组.在Java中,数组变量是引用类型的变量,同时因为Java是典型的静态语言,因此它的数组也是静 ...

  4. C语言经典例题100

    C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...

  5. 到底什么是dp思想(内含大量经典例题,附带详细解析)

    期末了,通过写博客的方式复习一下dp,把自己理解的dp思想通过样例全部说出来 说说我所理解的dp思想 dp一般用于解决多阶段决策问题,即每个阶段都要做一个决策,全部的决策是一个决策序列,要你求一个 最 ...

  6. arm汇编几个经典例题

    这几个例题来自我们的上机实验,通过这几个例题基本上能掌握arm汇编一些最基本的操作 arm汇编实现1-100的加法 12345678910111213 AREA Example1,CODE,READO ...

  7. Java 数组

    数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java语言中提供的数组是用来存储固定大小的同类型元素. 你可以声明一个数组变量,如numbers[100 ...

  8. 第5章 Java数组

    1.什么是数组 数组可以想象成一个巨大的盒子,这个盒子里面存放的是同一个数据类型的数据 例如:int[] scores = {78,68,94,93}; 2.如何使用Java中的数组 2.1申明数组 ...

  9. Java 数组基础

    数组 数组(Array):相同类型数据的集合. 定义数组 方式1(推荐,更能表明数组类型) type[] 变量名 = new type[数组中元素的个数]; 比如: int[] a = new int ...

随机推荐

  1. 区段统计 mysql 语句 case when then end as

    EXPLAIN SELECT COUNT(*),CASEWHEN device_width > 729 THEN '>729'WHEN device_width BETWEEN '720' ...

  2. MySQL基本命令语法之select

    目录 MySQL基本命令语法之select 查询去重以及常数 空值与着重号 着重号 空值 运算符 算术运算符 比较运算符 符号型 非符号型 逻辑运算符 优先级 排序分页 排序 分页 拓展 多表查询 等 ...

  3. 1day漏洞反推技巧实战(3)

    代码审计必备技能,github代码对比,写一笔: 搜索某开源组建漏洞,搜索出来某个版本rce: 通过消息得出:存在漏洞版本:1.10.10 ,修复漏洞版本1.10.11 去github寻找apache ...

  4. 基于TMS320C6670的软件无线电核心板

    一.板卡概述 北京太速科技自主研发的TMS320C6670核心板,采用TI KeyStone系列的四核定点/浮点DSP TMS320C6670作主处理器.板卡引出处理器的全部信号引脚,便于客户二次开发 ...

  5. Solution -「多校联训」最大面积

    \(\mathcal{Description}\)   Link.   平面上有 \(n\) 个点 \(A_{1..n}\),\(q\) 次询问,每次给出点 \(P\),求 \[\max_{1\le ...

  6. Solution -「CF 917D」Stranger Trees

    \(\mathcal{Description}\)   Link.   给定一棵包含 \(n\) 个点的有标号树,求与这棵树重合恰好 \(0,1,\cdots,n-1\) 条边的树的个数,对 \(10 ...

  7. Linux-CPU优化之平均负载率

    一.平均负载率定义 平均负载是指单位时间内,系统处于可运行状态 和不可中断状态 的平均进程数,也就是平均活跃进程数,它和CPU 使用率并没有直接关系. 可运行状态的进程:是指正在使用 CPU 或者正在 ...

  8. Owin Katana 的分析介绍

    本文首要是对美团的分布式ID结构Leaf的原理进行介绍,针对Leaf原项目中的一些issue,对Leaf项目进行功用增强,问题修正及优化改善,改善后的项目地址在这里: Leaf项目改善计划 https ...

  9. 关于Linux操作系统的命令行文件拷贝

    关于Linux操作系统的命令行文件拷贝 起因:服务器的加密狗秘钥过期导致无法使用服务,需要将服务器里面的秘钥文件发送给授权人员.本以为十分容易,打开服务器,图形界面点击发送即可.没想到服务器的界面是命 ...

  10. 2021年都要过去啦,你还在用Excel做数据可视化效果吗?

    2021年都要过去啦,你还在用Excel做数据可视化效果吗?古语有云,"工欲善其事,必先利其器",没有专业的工具,前期准备的再好也是白搭.现在运用数据可视化工具于经营活动中的企业是 ...