检查数字是否在给定范围内的有效方法
本文关键字:范围内 有效 方法 数字 是否 检查 | 更新日期: 2023-09-27 18:17:44
考虑以下场景:
-
我有两个常数MAX & MIN
-
我得到一个新的号码 x
现在检查x是否在给定的范围内,我将这样做:
if(x >= MIN && X <= MAX)
{
//Some logic
}
我想知道是否有更好的方式来谈论效率。我知道这是一个非常简单的任务,但我只是想知道是否有更好的方法
首先,这是一个典型的微优化案例,几乎没有回报。
话虽如此,"优化"这一点的唯一方法是,如果你事先知道其中一个比较很可能产生false
。如果有,则将该比较放在首位,以利用布尔短路求值。
if (x >= MIN && x <= MAX) { ... } // most efficient if x >= MIN is hardly ever true
或
if (x <= MAX && x >= MIN) { ... } // most efficient if x <= MAX is hardly ever true
如果这两种比较都是不可预测的,那么我们都浪费了时间…
如果您知道您的最小值将是0(您想要排除所有负数),您可以将If语句减少到
if (max <= (uint)x)