桌面检查二进制搜索

时间:2011-06-07 18:47:37

标签: search binary desk-check

我在这里是关于我面临的一个问题。

我想知道如何检查以下代码。

数据集

0 1  2 3  4   5  6  7   8   9  10  11   12  13  14 15

4 7 19 25 36 37 50 100 101 205 220 271 306 321 456 500 /* Numbers are a bit messed up */

算法 的binarySearch

SET found TO FALSE
SET bottom TO zero
SET top TO sizeOfList-1
WHILE ( NOT found AND bottom <= top )
    SET middle TO (bottom+top) DIV 2
    IF searchValue < list element middle THEN
        SET top TO middle-1
    ELSE
        IF searchValue > list element middle THEN
            SET bottom TO middle+1
        ELSE
            SET position TO middle
            SET found TO TRUE
        ENDIF
    ENDIF
ENDWHILE

IF NOT found THEN
    RETURN –1
ELSE
    RETURN position
ENDIF

1 个答案:

答案 0 :(得分:1)

执行此操作的最佳方法是首先绘制一个表格,每个变量都有一列(foundbottomtop等。然后,“成为”计算机,一次一行地执行程序代码(可能最好记下您访问的每个行号以保持跟踪),根据表中的值获取条件分支。每次修改变量时,都会使用更新的值向表中添加新行。最后,您应该达到return声明,然后您就完成了。