Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package tk.evilus;
- public class minmax extends Thread {
- private int arrOffset;
- private int threads;
- private int min;
- private int max;
- private double minD;
- private double maxD;
- private long sum;
- private double sumD;
- private boolean isDouble;
- private int[] arr;
- private double[] arrD;
- @Override
- public void run() {
- if (isDouble == false) {
- this.min = findMinMT();
- this.max = findMaxMT();
- this.sum = sumMT();
- } else {
- this.minD = findMinMT_Double();
- this.maxD = findMaxMT_Double();
- this.sumD = sumMT_Double();
- }
- }
- minmax(final int[] arr) {
- this.arr = arr;
- isDouble = false;
- // System.out.println("[SingleThreaded] Minmax zainicjalizowany!");
- }
- minmax(final double[] arr) {
- this.arrD = arr;
- isDouble = true;
- // System.out.println("[SingleThreaded] Minmax zainicjalizowany!");
- }
- minmax(final int n, final int t, final int[] arr) {
- this.arrOffset = n;
- this.threads = t;
- this.arr = arr;
- isDouble = false;
- // System.out.println("[MultiThreaded] Minmax nr "+n+" zainicjalizowany!");
- }
- minmax(final int n, final int t, final double[] arr) {
- this.arrOffset = n;
- this.threads = t;
- this.arrD = arr;
- isDouble = true;
- // System.out.println("[MultiThreaded] Minmax nr "+n+" zainicjalizowany!");
- }
- public int getMin() {
- return min;
- }
- public int getMax() {
- return max;
- }
- public long getSum() {
- return sum;
- }
- public double getMin_Double() {
- return minD;
- }
- public double getMax_Double() {
- return maxD;
- }
- public double getSum_Double() {
- return sumD;
- }
- public int findMinMT() {
- int min = arr[(arr.length / threads) * arrOffset];
- for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
- if (arr[i] < min) {
- min = arr[i];
- }
- }
- return min;
- }
- public double findMinMT_Double() {
- double min = arrD[(arrD.length / threads) * arrOffset];
- for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
- if (arrD[i] < min) {
- min = arrD[i];
- }
- }
- return min;
- }
- public int findMaxMT() {
- int max = arr[(arr.length / threads) * arrOffset];
- for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
- if (arr[i] > max) {
- max = arr[i];
- }
- }
- return max;
- }
- public double findMaxMT_Double() {
- double max = arrD[(arrD.length / threads) * arrOffset];
- for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
- if (arrD[i] > max) {
- max = arrD[i];
- }
- }
- return max;
- }
- public long sumMT() {
- long sum = 0;
- for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
- sum = sum + arr[i];
- }
- return sum;
- }
- public double sumMT_Double() {
- double sum = 0;
- for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
- sum = sum + arrD[i];
- }
- return sum;
- }
- public long sum() {
- long sum = 0;
- for (int i = 0; i < arr.length; i++) {
- sum = sum + arr[i];
- }
- return sum;
- }
- public double sum_Double() {
- double sum = 0;
- for (int i = 0; i < arrD.length; i++) {
- sum = sum + arrD[i];
- }
- return sum;
- }
- public int findMin() {
- int min = arr[0];
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] < min) {
- min = arr[i];
- }
- }
- return min;
- }
- public double findMin_Double() {
- double min = arrD[0];
- for (int i = 0; i < arrD.length; i++) {
- if (arrD[i] < min) {
- min = arrD[i];
- }
- }
- return min;
- }
- public int findMax() {
- int max = arr[0];
- for (int i = 0; i < arr.length; i++) {
- if (arr[i] > max) {
- max = arr[i];
- }
- }
- return max;
- }
- public double findMax_Double() {
- double max = arrD[0];
- for (int i = 0; i < arrD.length; i++) {
- if (arrD[i] > max) {
- max = arrD[i];
- }
- }
- return max;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement