理纱再一次将电脑屏幕转向我们。
无法找到
时顺序查找算法的运行次数
“啊,这次没出现
呢。”泰朵拉说。
“这个……各行的运行次数正确吗?”
我思考着。
显而易见,行L1与行L2 的运行次数是一次。
但是,行L3的运行次数真的是
次吗?不应该是
次吗?——不不,确实是
次。因为首先在
成立的情况下,
能取到
,一共要运行
次。接着,在
不成立的情况下还有
时的1次。相加得
次,这就是行L3的运行次数——理纱脑筋转得真快啊。
“L3 = L2 + L8。”理纱说。
这是什么意思……算了,接着往下看吧。
行L4呢?在找不到
的情况下,必须比较从
到
的
个数。因为比较操作要在行L4进行,所以这一行的运行次数为
次,的确合情合理。
行L5的话……嗯,因为没有输出“能找到”,所以行L5和行L6的运行次数都是0次。
行L7和行L8的运行次数与行L4的运行次数相等,都是
次。
行L9则一目了然。因为输出“无法找到”后流程结束,所以行L9和行L10的运行次数都是1次。
嗯,全部正确。
泰朵拉开始在纸上计算。
无法找到
时顺序查找算法的运行步数
“这样就完成了分情况讨论,对吧?”泰朵拉总结道。
原来如此。用数学公式表示会让人心里踏实呢……是啊,只要能像这样用数学公式来表示运行步数,就可以利用思考数学问题的方法去思考计算机问题了。我曾一度认为计算机和程序与数学毫不相关,现在看来未必是那样的。
解答2-1(顺序查找算法的运行步数)
在数列
中无法找到
时,顺序查找算法的运行步数是
。