算法设计与编程题:
有1000桶酒,其中有一桶酒有毒,一只老鼠喝了毒酒后,一周后会毒性发作,若需要在一周之内找到这桶毒酒,请问至少需要几只老鼠,为什么?
说明:这道题用度娘一下,就能找到答案了。我再次在这里写成出来,一是,想分享一下我的解题思路;二是,当作学习笔记。
分析:
1、看到这题的直觉是:这题是一道查找题(找出有毒的酒),像在有序的数组里查找,二分查找,查找次数为ceil(log2N),所以这道题,猜测答案为10。
2、既然有这样的猜测,接下来就是验证。首先,我们可以从小规模的问题分析,再推广到大规模问题。因此,我们不妨,假设为8瓶酒(从1000-->8)。我们来回想一下,二分查找,[1,2,3,4,5,6,7,8]中查找: