从未排序的列表中查找数字的直接大数和小数而不排序?

FInd immediate large and small number for a number from an unsorted list without sorting?

我正在尝试编写一个函数,它将一个数字作为输入,并按排序顺序从未排序的列表中输出前一个和下一个数字。例如,如果列表是 [29,1,49,8] ,调用函数 (8) 应该 return [1,29] 具有最小平均复杂度的唯一可能解决方案是通过排序,是否有任何其他方法,具有较低的平均复杂度?该列表是随机生成的固定大小 100

无需排序。 只需遍历数组并维护 best_delta_positive 和 best_delta_negative,以及必要时找到它们的索引。