可能重复:如何实现二分查找时的陷阱?
我正在浏览维基百科关于二分查找 的页面,并偶然看到 Knuth 的下面一句话:
“虽然二分查找的基本思想相对来说很简单,但是其中的细节可能会令人感到棘手。”
我记得作为计算机科学课程的一部分,我曾经实现过几次二分查找,但是并不认为它十分棘手。然而,这篇文章表明,在数小时之后,90%的调查专业人员无法使其正常工作。我想假设这不是因为这些人是糟糕的程序员,而是因为原始实现没有考虑到特殊情况。
Knuth 是指什么细节呢?如果要实现二分查找算法,有哪些需要注意的常见陷阱?
请注意,我读到 Bloch 关于 Programming Pearls 的一个错误(中点溢出)的文章。除此之外,还有什么吗?
“虽然二分查找的基本思想相对来说很简单,但是其中的细节可能会令人感到棘手。”
我记得作为计算机科学课程的一部分,我曾经实现过几次二分查找,但是并不认为它十分棘手。然而,这篇文章表明,在数小时之后,90%的调查专业人员无法使其正常工作。我想假设这不是因为这些人是糟糕的程序员,而是因为原始实现没有考虑到特殊情况。
Knuth 是指什么细节呢?如果要实现二分查找算法,有哪些需要注意的常见陷阱?
请注意,我读到 Bloch 关于 Programming Pearls 的一个错误(中点溢出)的文章。除此之外,还有什么吗?