Étant donné deux plages entières inclusives [x1: x2] et [y1: y2], où x1 ≤ x2 et y1 ≤ y2, quelle est la façon la plus efficace de tester s'il y a un chevauchement des deux plages?
Une implémentation simple est la suivante:
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);
}
Mais je m'attends à ce qu'il existe des moyens plus efficaces de calculer cela.
Quelle méthode serait la plus efficace en termes de moins d'opérations.