购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.5 顺序查找算法分析

“话说回来……村木老师是不是想让你把这个当作研究课题呢?”

“啊!说得对呀!”泰朵拉迅速回应了我的疑问。

村木老师经常给我们卡片。卡片上有时会有“请求解〇〇”这样的问题,但大多数卡片上写的不是问题,而是数学相关的素材。老师的意思是让我们自由思考,去发现有趣的性质。这和课堂作业里出现的试题完全不同,我们在卡片的引导下自己出题,自己解题。

我从高一开始就一直和村木老师进行着这样的交流,久而久之养成了自己动手动脑解决问题的习惯——不只是解决现有问题,还会尝试自己出题。

但是泰朵拉这次给我讲解的卡片与以往都不同,我完全找不到数学素材,只能找到像 k\leqslant nA[k]=v 这种简单的数学公式而已。

“那个……”我问泰朵拉,“我已经明白了顺序查找算法,可接下来要做什么呢?这张卡片能让我们提出怎样的问题呢?”

我无意识地望向理纱那边。在我和泰朵拉谈话的过程中,她的手一直没有离开键盘,灵巧的手指在键盘上飞舞。

“嗯……”泰朵拉眨着水灵的眼睛,“我们试着提高算法的运行速度怎么样?算法的目的是得到输出,速度当然是越快越好。”

“原来如此。”我点着头,“但是泰朵拉……顺序查找算法就是从数列的第1个数开始按顺序比较的方法,我们真的能让它运行得更快吗?而且怎样才能测出写在纸上的步骤的运行速度呢?”

“啊,说的也是呢……”泰朵拉小声嘟囔着。

“运行次数。”理纱说。

我和泰朵拉看向理纱,而理纱转过脸,没有表情地看着我们,敲键盘的手指依然没有停歇。

“运行次数……是什么?”我问理纱。

“按行计算。”

红发少女继续敲打着键盘。理纱的言语细微处混杂着些沙哑的音色,但不会让人觉得不舒服,反而有一种富有质感的魅力。她略带沙哑的嗓音,让我对她所说的一字一句都感到印象深刻。

“是指可以按行计算出运行次数么?”泰朵拉说,“嗯……因为刚才 \mathbf{end-procedure} 的标号是 \textcircled{18} ,一共运行了18步, 运行步数 为18。”

“但是,18这个结果仅局限于刚才的测试用例,对吧。”

“什么意思?”

“看,根据输入的不同,在数列 A 中存在可以查找到 v 的情况,也存在查找不到 v 的情况。可以查找到的情况又分为:在数列前端找到,在数列末端找到。这么多的情况,我们没有办法明确分出来呀。”

“啊……”

“而且,输入中的 n 也是一样。就像泰朵拉刚才说的那样, n 可能等于好几百万,再加上数列中未必存在 v ,这么多情况下的运行步数我们怎么数得过来呢。”

“说、说的也是……” w2AAT3AOjPKy8lk+jdMEWLnFNi/lrFuukKDUh8VooUSI7aM/HHEeo6emfxtUrRQX

点击中间区域
呼出菜单
上一章
目录
下一章
×