アルゴリズム-2 D配列の各種演算
2678 ワード
public class _ {
//
private static Double max(int[] a) {
double max = a[0];
// after > before,
for (int i = 1; i < a.length; i++) if (a[i] > max) max = a[i];
return max;
}
//
private static Double mean(int[] a) {
int N = a.length;
double sum = 0.0;
for (int anA : a) sum += anA;
return sum / N;
}
//
private static double[] copyArray(int[] a) {
int N = a.length;
// ,
double[] b = new double[N];
// , ,
for (int i = 0; i < N; i++) b[i] = a[i];
return b;
}
//
private static int[] reverse_Order(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 - i - 1] = temp;
}
return a;
}
/**
*
* a[][] * b[][] = c[][]
*/
private static double[][] matrix_Multiplication() {
int[][] a = {{3, 2}, {1, 3}};
int[][] b = {{2, 3}, {1, 1}};
/**
*
* a
* 3,2
* 1,3
*
* a[0][0]: :3
* a[0][1]: :2
* a[1][0]: :1
* a[1][1]: :3
* */
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 j
for (int k = 0; k < N; k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
return c;
}
//
private static int[][] two_dimensional_array() {
//M*N
int[][] ss = new int[2][3];
// , M( )
for (int i = 0; i < ss.length; i++) {
// N( )
for (int j = 0; j < ss.length; j++) {
ss[i][j] = 0;
}
}
return ss;
}
public static void main(String[] args) {
int[] a = {1, 3, 12, 3, 5};
System.out.println(max(a));
System.out.println(mean(a));
System.out.println(Arrays.toString(copyArray(a)));
//
System.out.println(" :\t"+Arrays.toString(reverse_Order(a)));
// System.out.println(Arrays.toString(a));
//
System.out.println(Arrays.deepToString(matrix_Multiplication()));
//
System.out.println(Arrays.deepToString(two_dimensional_array()));
}
}