编程之战 第二十二章 二分搜索
作者:程序小猿的小说      更新:2019-05-23

  这一次的场景还是在校园里面,不过从曙光中学切换到了某科技大学。

  “杨老师,明天是你第一次上我们班的计算机课,希望你能认真严肃点”。

  辅导员看了看杨成做的教案,不由得皱了皱眉头。

  只见那上面写的东西,用辅导员的话讲,就像在写YY小说。

  更气人的是,那空白处还画了一只白白胖胖,惟妙惟肖的可达鸭。

  那可达鸭眉头一皱,似乎发现问题并不简单...

  “好吧”,杨成摇摇头。

  “同学们就喜欢看这样的东西,我有什么办法?”

  “咳咳”,辅导员一声干咳。

  显然是被杨成的无耻雷到了。

  “这次的教授内容是二分搜索算法,你打算怎么展示?”。

  辅导员赶紧切换了话题。

  “二分搜索这东西,并不复杂,但要讲述的透彻,让学生一看就明白,还是得图形化展示”。

  杨成一副胸有成竹的模样。

  “我给你看个东西”。

  杨成点开电脑上一个文件夹,只见里面有一个命名为二分搜索的HTML文件。

  双击点开HTML文件,浏览器很快弹出了一个网页。

  这页面上有一个名为“length”的文本框,旁边还有个小小的“create”按钮。

  “length是数组的长度,设置好后,点击create按钮,会生成数组输入框”。

  杨成在文本框里面输入15,然后点击“create”按钮。

  下方很快出现了15个空白输入框,分别对应有序列表的15个元素。

  “在这些空白输入框,依次填入有序列表的元素”。

  “10,11,12,16,18,23,29,33,48,54,57,68,77,84,98”。

  杨成填好了这些数据,然后将光标切换到一个名为“target”的文本框。

  “这个文本框表示我们要查找的是哪个数字”,杨成填上了23。

  这是列表中已有的元素,因此将会执行一次命中查找。

  杨成点击“save”按钮,将数据保存到页面。

  “接着,点击show按钮,便会出现下面的查找过程面板”。

  杨成一点击按钮,下方果然出现了一个小小的面板。

  面板标题是“对23的命中查找”。

  一共花了4次查找来找到目标。

  第一次,left指针指向10,right指针指向98,mid指针指向33。

  第二次,left指针指向10,right指针指向29,mid指针指向16。

  第三次,left指针指向18,right指针指向29,mid指针指向23。

  第四次,三个指针全部指向23,命中目标!

  “不错”,辅导员竖起大拇指。

  “那如果是未命中查找,会怎样呢?”

  杨成将“target”文本框内的数字改成“50”,这是列表中没有的元素。

  很快,面板标题切换为“对50的未命中查找”,也花了4次查找来确认目标。

  第一次,left指针指向10,right指针指向98,mid指针指向33。

  第二次,left指针指向48,right指针指向98,mid指针指向68。

  第三次,left指针指向48,right指针指向57,mid指针指向54。

  第四次,三个指针全部指向48,未命中目标!

  “小杨啊,我要对你刮目相看了”,辅导员拍拍他的肩膀。

  “结账吧”,杨成淡淡地说道。

  这一刻,他仿佛经历了风雨的洗礼。

  “叮!恭喜您完成了二分搜索相关任务!”

  “当前积分47分,击败了全球25%的玩家,请您再接再厉!”