196040

Eksperimentalna programa

Oct 28th, 2020 (edited)
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. import java.util.Scanner;
  2. import java.util.Arrays;
  3. public class Main {
  4.     public static void main(String [] args) {
  5.         Scanner in = new Scanner(System.in);
  6.         int n;
  7.         int limit;
  8.         System.out.println("Enter the number of elements for the array.");
  9.         n = in.nextInt();
  10.         System.out.println("Enter the limit of the knapsack.");
  11.         limit = in.nextInt();
  12.         double [] array1 = new double[n];
  13.         System.out.println("Enter the elements in the array.");
  14.         for(int i=0; i<n; i++)
  15.             array1[i] = in.nextDouble();
  16.         double [] packet1 = new double[n]; // worst case scenario
  17.         System.out.println("BEFORE SORTING");
  18.         for(int i=0; i<array1.length; i++)
  19.             System.out.print(array1[i] + " ");
  20.         Arrays.sort(array1);
  21.         System.out.println("\nAFTER SORTING");
  22.         for(int i=0; i<array1.length; i++)
  23.             System.out.print(array1[i] + " ");
  24.        int tmp = array1.length;
  25.        for(int i=0; i<array1.length; i++) {
  26.                 if(i==(array1.length/2) && array1.length % 2 == 1) {
  27.                     packet1[i] = array1[i];
  28.                     break;
  29.                 }
  30.                if (array1[i] + array1[tmp-1] <= limit) {
  31.                    packet1[i] = array1[i] + array1[tmp - 1];
  32.                }
  33.                else if (packet1[i] + array1[i] <= 1)
  34.                    packet1[i] = array1[i] + packet1[i];
  35.                else
  36.                    packet1[i] = array1[i];
  37.                tmp--;
  38.                if(i == (array1.length/2)-1 && array1.length % 2 == 0)
  39.                    break;
  40.            }
  41.        int counter=0;
  42.        for(int i=0; i<packet1.length; i++)
  43.            if(packet1[i]>0)
  44.                counter++;
  45.            double [] knapsack = new double[counter];
  46.            for(int i=0; i<counter; i++)
  47.                knapsack[i] = packet1[i];
  48.        System.out.println("\nAFTER ADDING");
  49.        for(int i=0; i<knapsack.length; i++)
  50.         System.out.print(knapsack[i] + " ");
  51.     }
  52. }
  53.  
Add Comment
Please, Sign In to add comment