Advertisement
Evilerus

minmax

Apr 23rd, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.02 KB | None | 0 0
  1. package tk.evilus;
  2.  
  3. public class minmax extends Thread {
  4.  
  5.     private int arrOffset;
  6.     private int threads;
  7.  
  8.     private int min;
  9.     private int max;
  10.  
  11.     private double minD;
  12.     private double maxD;
  13.  
  14.     private long sum;
  15.     private double sumD;
  16.  
  17.     private boolean isDouble;
  18.  
  19.     private int[] arr;
  20.     private double[] arrD;
  21.  
  22.     @Override
  23.     public void run() {
  24.         if (isDouble == false) {
  25.             this.min = findMinMT();
  26.             this.max = findMaxMT();
  27.             this.sum = sumMT();
  28.         } else {
  29.             this.minD = findMinMT_Double();
  30.             this.maxD = findMaxMT_Double();
  31.             this.sumD = sumMT_Double();
  32.         }
  33.     }
  34.  
  35.     minmax(final int[] arr) {
  36.         this.arr = arr;
  37.         isDouble = false;
  38.         // System.out.println("[SingleThreaded] Minmax zainicjalizowany!");
  39.     }
  40.  
  41.     minmax(final double[] arr) {
  42.         this.arrD = arr;
  43.         isDouble = true;
  44.         // System.out.println("[SingleThreaded] Minmax zainicjalizowany!");
  45.     }
  46.  
  47.     minmax(final int n, final int t, final int[] arr) {
  48.         this.arrOffset = n;
  49.         this.threads = t;
  50.         this.arr = arr;
  51.         isDouble = false;
  52.         // System.out.println("[MultiThreaded] Minmax nr "+n+" zainicjalizowany!");
  53.     }
  54.  
  55.     minmax(final int n, final int t, final double[] arr) {
  56.         this.arrOffset = n;
  57.         this.threads = t;
  58.         this.arrD = arr;
  59.         isDouble = true;
  60.         // System.out.println("[MultiThreaded] Minmax nr "+n+" zainicjalizowany!");
  61.     }
  62.  
  63.     public int getMin() {
  64.         return min;
  65.     }
  66.  
  67.     public int getMax() {
  68.         return max;
  69.     }
  70.  
  71.     public long getSum() {
  72.         return sum;
  73.     }
  74.  
  75.     public double getMin_Double() {
  76.         return minD;
  77.     }
  78.  
  79.     public double getMax_Double() {
  80.         return maxD;
  81.     }
  82.  
  83.     public double getSum_Double() {
  84.         return sumD;
  85.     }
  86.  
  87.     public int findMinMT() {
  88.         int min = arr[(arr.length / threads) * arrOffset];
  89.  
  90.         for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
  91.             if (arr[i] < min) {
  92.                 min = arr[i];
  93.             }
  94.         }
  95.  
  96.         return min;
  97.     }
  98.  
  99.     public double findMinMT_Double() {
  100.         double min = arrD[(arrD.length / threads) * arrOffset];
  101.  
  102.         for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
  103.             if (arrD[i] < min) {
  104.                 min = arrD[i];
  105.             }
  106.         }
  107.  
  108.         return min;
  109.     }
  110.  
  111.     public int findMaxMT() {
  112.         int max = arr[(arr.length / threads) * arrOffset];
  113.  
  114.         for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
  115.             if (arr[i] > max) {
  116.                 max = arr[i];
  117.             }
  118.         }
  119.  
  120.         return max;
  121.     }
  122.  
  123.     public double findMaxMT_Double() {
  124.         double max = arrD[(arrD.length / threads) * arrOffset];
  125.  
  126.         for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
  127.             if (arrD[i] > max) {
  128.                 max = arrD[i];
  129.             }
  130.         }
  131.  
  132.         return max;
  133.     }
  134.  
  135.     public long sumMT() {
  136.         long sum = 0;
  137.         for (int i = (arr.length / threads) * arrOffset; i < (arr.length / threads) * (arrOffset + 1); i++) {
  138.             sum = sum + arr[i];
  139.         }
  140.         return sum;
  141.     }
  142.  
  143.     public double sumMT_Double() {
  144.         double sum = 0;
  145.         for (int i = (arrD.length / threads) * arrOffset; i < (arrD.length / threads) * (arrOffset + 1); i++) {
  146.             sum = sum + arrD[i];
  147.         }
  148.         return sum;
  149.     }
  150.  
  151.     public long sum() {
  152.         long sum = 0;
  153.         for (int i = 0; i < arr.length; i++) {
  154.             sum = sum + arr[i];
  155.         }
  156.         return sum;
  157.     }
  158.  
  159.     public double sum_Double() {
  160.         double sum = 0;
  161.         for (int i = 0; i < arrD.length; i++) {
  162.             sum = sum + arrD[i];
  163.         }
  164.         return sum;
  165.     }
  166.  
  167.     public int findMin() {
  168.         int min = arr[0];
  169.  
  170.         for (int i = 0; i < arr.length; i++) {
  171.             if (arr[i] < min) {
  172.                 min = arr[i];
  173.             }
  174.         }
  175.  
  176.         return min;
  177.     }
  178.  
  179.     public double findMin_Double() {
  180.         double min = arrD[0];
  181.  
  182.         for (int i = 0; i < arrD.length; i++) {
  183.             if (arrD[i] < min) {
  184.                 min = arrD[i];
  185.             }
  186.         }
  187.  
  188.         return min;
  189.     }
  190.  
  191.     public int findMax() {
  192.         int max = arr[0];
  193.  
  194.         for (int i = 0; i < arr.length; i++) {
  195.             if (arr[i] > max) {
  196.                 max = arr[i];
  197.             }
  198.         }
  199.  
  200.         return max;
  201.     }
  202.  
  203.     public double findMax_Double() {
  204.         double max = arrD[0];
  205.  
  206.         for (int i = 0; i < arrD.length; i++) {
  207.             if (arrD[i] > max) {
  208.                 max = arrD[i];
  209.             }
  210.         }
  211.  
  212.         return max;
  213.     }
  214. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement