Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Problem {
- private static final int MY_THREADS = 10;
- public static void main(String[] args) {
- double[] array = {...};
- double[] maximums = new double[3];
- for (int i = 0; i < maximums.length; ++i) {
- maximums[i] = Double.MIN_VALUE;
- }
- ExecutorService executor = Executors.newFixedThreadPool(MY_THREADS);
- Runnable worker = new MyRunnable(array, maximums);
- executor.execute(worker);
- executor.shutdown();
- while (!executor.isTerminated()) {
- }
- System.out.println(Arrays.toString(maximums));
- }
- public static class MyRunnable implements Runnable {
- private double[] array;
- private double[] maximums;
- MyRunnable(double[] array, double[] maximums) {
- this.array = array;
- this.maximums = maximums;
- }
- @Override
- public void run() {
- int i = 0;
- while (i < array.length) {
- if (array[i] > maximums[getMinIndex(maximums)]) {
- maximums[getMinIndex(maximums)] = array[i];
- }
- ++i;
- }
- }
- }
- private static int getMinIndex(double[] array) {
- int minIndex = -1;
- double min = Double.MAX_VALUE;
- for (int i = 0; i < array.length; ++i) {
- if (array[i] < min) {
- min = array[i];
- minIndex = i;
- }
- }
- return minIndex;
- }
Add Comment
Please, Sign In to add comment