实验报告(第二周)

(选择的题目为第二题改编二分搜索算法)

第二题是在第一题的基础上改编的,所以在二分搜索上并没有遇到问题,我的想法是在调用函数里面分4种情况:(1)用while语句判断输入的关键字x是否等于数组a【n】里面的某个值,设置middle=(left+right)/2,left初始值为0,right初始值为n-1,即时第一题的情况;

接下来用if语句:(1)x小于a【0】;(2)x大于a【n-1】;(3)x的值在数组中

但在解决第3种情况时一直答案错误,在上机的时候为什么错忘了,因为当时没有保留源代码;后来错误的原因是少了一对{},导致for 语句一直在循环。部分代码如下:

for(int j=1; j<n; j++)
  {
   if(key<a[j])
   {
   cout<<j-1<<" "<<j<<endl;
    break;
   }

感想:在编写程序时算法很重要,但语法也要注意,不然可能会因为一个小错误而垮掉。

posted @ 2018-10-14 22:41  树下等雷  阅读(99)  评论(0编辑  收藏  举报