@@ -4,5 +4,10 @@ class Main { | |||
System.out.println("Usage: java Main <n>"); | |||
System.exit(1); | |||
} | |||
NPunkter17 points = new NPunkter17(Integer.parseInt(args[0])); | |||
Sequential s = new Sequential(points); | |||
s.solve(); | |||
s.draw(); | |||
} | |||
} |
@@ -1,16 +1,32 @@ | |||
abstract class Oblig4 { | |||
// Required for TegnUt | |||
public int x[]; | |||
public int y[]; | |||
public int n; | |||
public int MAX_Y; | |||
public int MAX_X; | |||
int x[]; | |||
int y[]; | |||
int n; | |||
int MAX_Y; | |||
int MAX_X; | |||
int minX; | |||
int maxX; | |||
int minY; | |||
int maxY; | |||
IntList coHull; | |||
NPunkter17 points; | |||
String name = "Oblig4"; | |||
Oblig4(NPunkter17 points) { | |||
this.points = points; | |||
n = points.n; | |||
x = new int[n]; | |||
y = new int[n]; | |||
coHull = new IntList(); | |||
points.fyllArrayer(x, y); | |||
} | |||
abstract void solve(); | |||
void draw() { | |||
TegnUt t = new TegnUt(this, coHull, name); | |||
t.setVisible(true); | |||
} | |||
} |
@@ -1,4 +1,9 @@ | |||
class Parallel extends Oblig4 { | |||
Parallel(NPunkter17 points) { | |||
super(points); | |||
name = "Parallel"; | |||
} | |||
void solve() { | |||
System.out.println("Solving in parallel"); | |||
} |
@@ -1,5 +1,40 @@ | |||
class Sequential extends Oblig4 { | |||
Sequential(NPunkter17 points) { | |||
super(points); | |||
name = "Sequential"; | |||
} | |||
@Override | |||
void solve() { | |||
System.out.println("Solving sequentially"); | |||
findMinMaxX(); | |||
MAX_X = x[maxX]; | |||
MAX_Y = y[maxY]; | |||
coHull.add(minX); | |||
coHull.add(maxY); | |||
coHull.add(maxX); | |||
coHull.add(minY); | |||
} | |||
void findMinMaxX() { | |||
minX = 0; | |||
maxX = 0; | |||
minY = 0; | |||
maxY = 0; | |||
for (int i = 1; i < n; ++i) { | |||
int px = x[i]; | |||
if (px < x[minX]) | |||
minX = i; | |||
if (px > x[maxX]) | |||
maxX = i; | |||
int py = y[i]; | |||
if (py < y[minY]) | |||
minY = i; | |||
if (py > y[maxY]) | |||
maxY = i; | |||
} | |||
} | |||
} |