一、数组反转 

  1、方法一:创建新数组
 int[] arr = {6,29,0,4,3};
int[] arr2 = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
arr2[i]=arr[arr.length-1-i];
}
System.out.println(Arrays.toString(arr2));
  2、方法二:交换
 int[] arr = {6,29,0,4,3};
int mid = arr.length/2;
for (int i = 0,j=arr.length-1; i < mid; i++,j--) {
int a = arr[i];
arr[i] = arr[j];
arr[j] = a;
}
System.out.println(Arrays.toString(arr));

二、查找数组中指定元素的索引位置

  1、方法一:遍历
  

 public class FindArraryValue {
public static void main(String[] args) {
int[] arr = { 6, 29, 1, 4, 3,100,80,1000,600 };
System.out.println(find1(arr, 6));//
} public static int findValue(int[] a, int v) {
for (int i = 0; i < a.length; i++) {
if (a[i] == v) {
return i;
}
}
return -1;
}
}
  2、方法二:二分查找法(必须先排序)
 public class FindArraryValue {
public static void main(String[] args) {
int[] arr = { 6, 29, 1, 4, 3,100,80,1000,600 };
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
//[1, 3, 4, 6, 29, 80, 100, 600, 1000]
System.out.println(binaryResearch(arr, 0, arr.length, 6));
//[1, 3, 4, 6, 29, 80, 100, 600, 1000]
System.out.println(Arrays.binarySearch(arr, 6));
} public static int binaryResearch(int[] a, int fromIndex, int toIndex, int v) {
if (a == null) {
throw new RuntimeException("数组不能为空");
}
if (fromIndex < 0) {
throw new RuntimeException("开始索引不能为负数");
}
if (fromIndex > toIndex) {
throw new RuntimeException("开始索引不能小于结束索引");
}
if (fromIndex > a.length) {
throw new RuntimeException("结束索引不能大于数组的长度");
}
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
//无符号右移一位,即除以2
int mid = (high + low) >>> 1;
if (a[mid] < v) {
low = mid + 1;
} else if (a[mid] > v) {
high = mid - 1;
} else {
return mid;
}
}
       //未找到
return -1;
}
}

三、杨辉三角

  1、方法一:直接创建二维数组

 public class Yang {
public static void main(String[] args) {
int yang[][] = new int[10][10]; yang[0][0]=1;
yang[1][0]=1;
yang[1][1]=1;
for (int i = 2; i <10 ; i++) {
yang[i][0]=1;
yang[i][i]=1;
for (int j = 1; j < i; j++) {
yang[i][j]=yang[i-1][j-1]+yang[i-1][j];
}
} for (int i = 0; i <10 ; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(yang[i][j]+" ");
}
System.out.println();
}
}
}

  2、方法二:在二层循环中创建一位数组(推荐)

 public class Yang {
public static void main(String[] args) {
int yang[][] = new int[10][];
for (int i = 0; i < yang.length; i++) {
yang[i]=new int[i+1];
yang[i][0]=1;
yang[i][i]=1;
//for (int j = 1; j < yang[i].length-1; j++) {
for (int j = 1; j < i; j++) {
yang[i][j]=yang[i-1][j-1]+yang[i-1][j];
}
} for (int i = 0; i <10 ; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(yang[i][j]+" ");
}
System.out.println();
}
}
}

四、九九乘法表 

 public class Jiujiu {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
for (int j = 1; j <= i; j++) {
System.out.printf("%d * %d = %d ",j,i,i*j);
}
System.out.println();
}
}
}

Java数组相关算法一的更多相关文章

  1. 藏在Java数组的背后,你可能忽略的知识点

    目录 引言 概念 区别于C/C++数组 区别于容器 数组特性 随机访问 Java数组与内存 解惑 数组的本质 Java中的数组是对象吗? Java中数组的类型 Java中数组的继承关系 参考资料 引言 ...

  2. Java数组一定要初始化才能使用吗?

    数组是大多数编程语言提供的一种复合结构,如果程序需要多个类型相同的变量时,就可以考虑定义一个数组.Java语言的数组变量是引用类型的变量,因此具有Java独有的特性. 在正常的Java开发中,使用Ja ...

  3. java数组初始化

    java数组初始化 //静态初始化数组:方法一 String cats[] = new String[] { "Tom","Sam","Mimi&qu ...

  4. Java基础学习-Random类和Java数组

    1.随机数类(Random) package com.denniscui;   import java.util.Random; /*  * Random:用于产生随机数  *  * 使用步骤:  * ...

  5. Java 数组声明的几种方式

    Java数组定义声明的几种方法: 1. 类型名称[] 变量名=new 类型名称[length]; 2.类型名称[] 变量名={?,?,?}; 3.类型名称[] 变量名=new 类型名称[]{?,?,? ...

  6. (网页)java数组去重总结(转)

    转自CSDN: 1.背景 根据不同的业务逻辑,经常会遇到数组中存在多个重复元素的场合,总结了下数组的排序,留个记录. 2.实现方法   总结了四种方法,接下来进行展示 1.方法一 //数组去重方法一 ...

  7. java 数组和集合

    1.概念说明 区别:数组固定长度的,集合,数组的长度是可以变化的. List,继承Collection,可重复.有序的对象 Set,继承Collection,不可重复.无序的对象 Map,键值对,提供 ...

  8. 1.1使用java数组,并开始封装我们自己的数组

    今天感冒了,全身酸软无力,啥样不想做,就来学习吧,此节我们从初步使用java中提供的数组,然后分析相关情况,过渡到封装我们自己的数组. 一.我们先来感受一下java提供的数组,以整型数组(int[]) ...

  9. 浅析Java 数组-基础详解

    什么是数组:数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. Java 数组:用来存储固定大小的同类型元素. 一 声明.创建,初始化Java 数组 写在前面 ...

随机推荐

  1. python中的垃圾回收机制及原理

    序言: 来一起看看: 不同于C/C++,像Python这样的语言是不需要程序员写代码来管理内存的,它的GC(Garbage Collection)机制 实现了自动内存管理.GC做的事情就是解放程序员的 ...

  2. uwsgi配置cheaper模式进行自动弹性

    [uwsgi] socket = 0.0.0.0:8080 protocol = http master = true hara-kiri = 60 chdir = /home/test/projec ...

  3. 【vue】vue不足 待补强

    83719279 9:56:03尤其是路由 声明周期 父子通信 组件通信 以及钩子函数83719279 9:56:17这些我都不敢用,只能用最原始的方法83719279 9:56:32还有es6 js ...

  4. 19.go语言基础学习(下)——2019年12月16日

    2019年12月16日16:57:04 5.接口 2019年11月01日15:56:09 5.1 duck typing 1. 2. 接口 3.介绍 Go 语言的接口设计是非侵入式的,接口编写者无须知 ...

  5. DataFrame.loc的区间

    df.loc[dates[0:1],'E']和df.loc[dates[0]:dates[1],'E']不同. 前者不包含dates[1],后者是包含dates[1]的. 根据Python3中实际代码 ...

  6. 关于scikit-learn

    机器学习scikit-learn scikit-learn官网学习资料非常丰富,完全可以自学: http://scikit-learn.org/ 目前就以scikit-learn为主要工具学习mach ...

  7. maven之assembly插件

    传送门 https://blog.csdn.net/WANGYAN9110/article/details/38646677/ http://blueram.iteye.com/blog/168407 ...

  8. 纯CSS实现项目展示遮罩详情效果

    本实例主要用于项目展示时鼠标hover后显示一个遮罩显示项目详情的效果,遮罩采用CSS的绝对定位以及CSS3盒子模型. 本实例应用广泛,很多品牌官方网站均有采用. hover: <!DOCTYP ...

  9. Python分布式爬虫打造搜索引擎完整版-基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站

    Python分布式爬虫打造搜索引擎 基于Scrapy.Redis.elasticsearch和django打造一个完整的搜索引擎网站 https://github.com/mtianyan/Artic ...

  10. php面试专题---20、MySQL的安全性考点

    php面试专题---20.MySQL的安全性考点 一.总结 一句话总结: 还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点 ...