当前位置: 代码迷 >> 综合 >> 算法学习-典型数组处理
  详细解决方案

算法学习-典型数组处理

热度:41   发布时间:2024-02-07 10:19:03.0

什么是数组?

数组能够顺序存储相同类型的多个数据。访问数组中某个元素的方法是通过数组索引下标访问。数组索引下标是指,每一个数组中的元素对应一个编号。通过编号能够快捷地对数组中的元素进行访问。

Java中使用数组

创建一个数组需要三个步骤

1.声明数组:定义数组的名字和存储的数据类型

2.创建数组:创建过程完成之后才可以使用数组,创建数组的时候我们需要指定数组的长度即元素的个数

3.初始化数组元素

//  声明数组
int[] demo;
//  创建数组,
demo = new int[3];
//  初始化数组元素
for(int i = 0;i < 3;i++) {demo[i] = i;
}//  简化写法 
int[] a = new int[3];//  声明初始化写法
int[] a = {1,2,3};

典型数组处理代码

现在有一些任务需要处理。我们已经知道了,数组存储了一些的相同类型的元素。如果我们需要找出其中最大的元素?如何计算数组元素的平均值?如何复制数组?若是要颠倒数组中的元素,又该怎么做......

找出数组中最大的元素

    public int maxAt(int[] a) {int maxAt = a[0];for (int i = 1;i < a.length;i++) {if(maxAt < a[i]) {maxAt = a[i];}}return maxAt;}

计算数组元素的平均值

    public double average(int[] a) {int n = a.length;double sum = 0.0;for (int value : a) {sum += value;}return sum/n;}

复制数组

    public int[] cp(int[] a){int n = a.length;int[] rp = new int[n];//System.arraycopy(a,0,rp,0, n);for (int i = 0; i < a.length; i++) {rp[i] = a[i];}return rp;}

颠倒数组元素的顺序

    public void reverse(int[] a) {int n = a.length;for (int i = 0; i < n / 2; i++) {int temp = a[i];a[i] = a[n-1-i];a[n-1-i] = temp;}}

矩阵相乘

在Java中可以使用二维数组代替矩阵,两个矩阵相乘可以得到一个新的矩阵。运算规则是第一个矩阵上的每一行元素与第二个矩阵的每一列元素做乘法运算并相加得到新的矩阵

    public void mu(int[][] a) {int n = a.length;double[][] c = new double[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {//  进行计算得出新的矩阵,以 i=0 j=0 为例//  第一个矩阵的第0个数组的每一个元素分别与//  第二个矩阵的每一个数组的第一个元素相乘得到新矩阵 c[0][0] 位置的值for (int k = 0; k < n; k++) {c[i][j] += a[i][k]*a[k][j];}}}}

后记

夯实好基础,运用好简单技能去解决复杂问题。

  相关解决方案