정수가 두 정수 사이에 있는지 확인하는 가장 빠른 방법(포함)
정수가 다른 두 정수 사이에 있는지 확인하는 것이 일반적입니다. 연산을 수행하며 전통적인 접근 방식에는 논리적 AND와 부등식을 사용하는 것이 포함됩니다. 비교:
x >= start && x <= end
그러나 더 빠른 대안이 있습니까?
잠재적인 최적화 중 하나는 단일 비교/분기를 사용하는 것입니다. 이 접근 방식은 숫자와 하한 및 상한을 부호 없는 정수로 변환하고 그 차이를 비교하는 방식으로 작동합니다.
if ((unsigned)(number-lower) <= (upper-lower)) in_range(number);
이 방법이 작동하는 이유는 무엇인가요? 숫자가 하한보다 낮으면 차이는 음수가 됩니다. 숫자가 범위 내에 있으면 차이는 양수이며 상한과 하한의 차이보다 작거나 같습니다.
이 방법에는 여러 가지 장점이 있습니다.
실제로는 숫자와 간격을 원점으로 변환하고 숫자가 [0, D](여기서 D = 상한 - 하한) 내에 있는지 테스트하면 이 효율적인 알고리즘의 기초가 제공됩니다. 하한 아래의 음수는 음수 값으로 변환되고, 상한 위의 숫자는 D보다 큰 값으로 변환됩니다.
위 내용은 정수가 주어진 범위 내에 속하는지 확인하는 더 빠른 방법이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!