Repository navigation
Expand file tree
/
Copy pathArrayOperations.java
More file actions
117 lines (105 loc) · 3.25 KB
/
Copy pathArrayOperations.java
File metadata and controls
117 lines (105 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package javakb.ch05_arrays;
import java.util.Arrays;
/**
* ArrayOperations demonstrates modular utility methods operating on arrays:
* 1. Sum calculation
* 2. Average calculation
* 3. Finding Maximum element
* 4. Finding Minimum element
* 5. In-place Reversal
* 6. Counting Even and Odd numbers
*/
public class ArrayOperations {
/**
* Calculates the sum of all elements in an integer array.
*/
public static int sum(int[] arr) {
int total = 0;
for (int num : arr) {
total += num;
}
return total;
}
/**
* Calculates the average value of elements in an integer array.
*/
public static double average(int[] arr) {
if (arr == null || arr.length == 0) return 0.0;
return (double) sum(arr) / arr.length;
}
/**
* Finds the maximum value in an integer array.
*/
public static int findMax(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("Array must not be empty");
}
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
/**
* Finds the minimum value in an integer array.
*/
public static int findMin(int[] arr) {
if (arr == null || arr.length == 0) {
throw new IllegalArgumentException("Array must not be empty");
}
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
/**
* Reverses an array in-place using two pointers (start and end).
*/
public static void reverseInPlace(int[] arr) {
if (arr == null) return;
int start = 0;
int end = arr.length - 1;
while (start < end) {
// Swap elements
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
/**
* Counts and returns even and odd counts as a two-element array [evenCount, oddCount].
*/
public static int[] countEvenOdd(int[] arr) {
int evenCount = 0;
int oddCount = 0;
for (int num : arr) {
if (num % 2 == 0) {
evenCount++;
} else {
oddCount++;
}
}
return new int[]{evenCount, oddCount};
}
public static void main(String[] args) {
int[] data = {12, 45, 7, 23, 56, 89, 34, 18};
System.out.println("Input Array: " + Arrays.toString(data));
System.out.println("Sum: " + sum(data));
System.out.printf("Average: %.2f%n", average(data));
System.out.println("Maximum Element: " + findMax(data));
System.out.println("Minimum Element: " + findMin(data));
int[] counts = countEvenOdd(data);
System.out.println("Even Count: " + counts[0] + " | Odd Count: " + counts[1]);
System.out.println("\n--- In-Place Reversal ---");
System.out.println("Before Reversal: " + Arrays.toString(data));
reverseInPlace(data);
System.out.println("After Reversal: " + Arrays.toString(data));
}
}