
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1.3 猜数游戏算法实现
通过上面的图解,相信大家对二分搜索问题的算法已经有了了解,猜数游戏算法的实质就是对半查找。那么接下来就要通过程序帮助小王在0~100中找到写在纸上的数字。通过递归的方式实现这个算法,完整代码如下。


递归程序运行结果如图1.8所示。

图1.8 递归程序运行结果
可以发现,程序的运行结果和小王的猜数策略是一致的,这样就可以通过该程序来玩这个游戏了。上面的算法是通过递归的方式来实现的二分搜索算法,那可不可以通过非递归的方式实现呢?答案是可以。非递归方式的算法完整代码如下。

非递归程序运行结果如图1.9所示。

图1.9 非递归程序运行结果
通过图1.8和图1.9可以发现,两个程序的运行结果是一致的,但是两个程序的实现方式却不一样,不一样就可以进行比较,那么如何评判两个程序实现方式的优劣呢?