如果您正在寻找最有效的解决方案,我会想象这是这样的:
if (array[randomIndexA] > array[randomIndexB]) { if (array[randomIndexB] > array[randomIndexC]) { return "b is the middle value"; } else if (array[randomIndexA] > array[randomIndexC]) { return "c is the middle value"; } else { return "a is the middle value"; }} else { if (array[randomIndexA] > array[randomIndexC]) { return "a is the middle value"; } else if (array[randomIndexB] > array[randomIndexC]) { return "c is the middle value"; } else { return "b is the middle value"; }}这种方法需要至少两个和最多三个比较。它故意忽略了两个值相等的可能性(就像您的问题一样):如果这很重要,则可以扩展该方法来检查它。



