Gegeben sind zwei umfassende Bereiche [x1:x2] und [y1:y2], wobei x1 x2
y y1 y2
Wie lässt sich am effizientesten prüfen, ob es Überschneidungen zwischen den beiden Bereichen gibt?
Eine einfache Umsetzung sieht wie folgt aus:
bool testOverlap(int x1, int x2, int y1, int y2) {
return (x1 >= y1 && x1 <= y2) ||
(x2 >= y1 && x2 <= y2) ||
(y1 >= x1 && y1 <= x2) ||
(y2 >= x1 && y2 <= x2);
}
Aber ich gehe davon aus, dass es effizientere Wege gibt, dies zu berechnen.
Welche Methode wäre die effizienteste, weil sie die wenigsten Arbeitsschritte erfordert?