我在这里是关于我面临的一个问题。
我想知道如何检查以下代码。
数据集
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
答案 0 :(得分:1)
执行此操作的最佳方法是首先绘制一个表格,每个变量都有一列(found
,bottom
,top
等。然后,“成为”计算机,一次一行地执行程序代码(可能最好记下您访问的每个行号以保持跟踪),根据表中的值获取条件分支。每次修改变量时,都会使用更新的值向表中添加新行。最后,您应该达到return
声明,然后您就完成了。