Пример #1
0
 /**
  * Creates a skyline inductively.
  *
  * @param input array of buidling to be put into a skyline
  * @param size width of desired skyline
  * @return Skyline with buildings put in.
  */
 public static Skyline inductiveSkyline(ArrayList<Building> input, int size) {
   Skyline skyline = new Skyline(size);
   for (int i = 0; i < input.size(); i++) {
     skyline = Skyline.addToSkyline(input.get(i), skyline);
   }
   return skyline;
 }
Пример #2
0
 /**
  * Creates a skyline by dividing the array of buildings and merging them back together, adding
  * buildings in at the base case
  *
  * @param input list of buildings to be put into the skyline
  * @param first starting index in the array
  * @param last final index in the array
  * @param size size of the skyine that the buildings will be put into
  * @return A skyline of buildings
  */
 public static Skyline divideAndConquerSkyline(
     ArrayList<Building> input, int first, int last, int size) {
   if (first == last) {
     Skyline skyline = new Skyline(size);
     skyline = Skyline.addToSkyline(input.get(first), skyline);
     return skyline;
   } else {
     int half = (first + last) / 2;
     Skyline firstSkyline = divideAndConquerSkyline(input, first, half, size);
     Skyline secondSkyline = divideAndConquerSkyline(input, half + 1, last, size);
     return Skyline.mergeSkylines(firstSkyline, secondSkyline);
   }
 }