为了账号安全,请及时绑定邮箱和手机立即绑定

二分查找比较计数器

二分查找比较计数器

守着星空守着你 2021-12-10 17:07:41
所以,我有一个二进制搜索代码(不是我的),但我不知道如何将计数器放在它进行了多少次比较上。输入元素然后排序。然后这个代码来了。    System.out.println("\nEnter value to find");    num_search = in.nextInt();    first  = 0;    last   = n - 1;    middle = (first + last)/2;     while( first <= last )    {       if ( a[middle] < num_search )        first = middle + 1;          else if ( a[middle] == num_search )     {       System.out.println(num_search + " found at location " + (middle + 1) + ".");          System.out.println("Counter = " + (ctr + middle));        break;      }      else     last = middle - 1;      middle = (first + last)/2;    }    if (first > last)  System.out.println(num_search + " isn't present in the list.\n");
查看完整描述

2 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

简单地增加ctr所有三种情况的值。确保您已初始化ctrwith 0;


while( first <= last )

    { 

      if ( a[middle] < num_search )

        {first = middle + 1;

        ctr++; //<----increment the count by 1

        }

      else if ( a[middle] == num_search )

     {

       ctr++; //<----increment the count by 1

       System.out.println(num_search + " found at location " + (middle + 1) + ".");

       System.out.println("Counter = " + ctr); //<-----add 1 to result

       break;

      }

      else

      {last = middle - 1;

      ctr++; //<----increment the count by 1

      }


      middle = (first + last)/2;

    }

    if (first > last)

        System.out.println(num_search + " isn't present in the list.\n");


查看完整回答
反对 回复 2021-12-10
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您可以像这样增加计数:


int count = 0;

while( first <= last )

  if ( a[middle] < num_search ) {

    count+= 1;

    first = middle + 1;  

  }  

  else if ( a[middle] == num_search )

 {

   count+= 2;

   System.out.println(num_search + " found at location " + (middle + 1) + ".");

    break;

  }

  else {

      count+= 3;

     last = middle - 1;

 }


  middle = (first + last)/2;

}

System.out.println("Counter = " + count);


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信