用C语言解释二分查找

二分查找方法只能应用于排序列表。给定的列表分为两个相等的部分。在列表中,键与中间元素进行比较。

二分查找中可能会出现三种情况,如下所示 -

  • 如果中间元素与key匹配,那么搜索将在这里成功结束

  • 如果中间元素大于键,则搜索将在左分区中进行

  • 如果中间元素低于键,则搜索将在正确的分区中进行。

输入 (i/p)

排序的元素列表,键。

输出 (o/p)

  • 成功 - 如果找到密钥。

  • 不成功 - 否则。

示例

以下是二进制搜索方法的 C 程序 -

#include<stdio.h>

int main(){

   int a[50], n, i, key, flag = 0, low, mid, high;

   printf("enter the no: of elements:");

   scanf ("%d",&n);

   printf("输入元素:");

   for(i=0; i<n; i++)

      scanf( "%d", &a[i]);

   printf("输入一个关键元素:");

   scanf ("%d", &key);

   low = 0;

   high = n-1;

   while (low<= high ){

      mid = (low + high) /2;

      if (a[mid] == key){

         flag = 1;

      break;

   } else {

      if (a[mid] > key)

         high = mid-1;

      else

         low = mid+1;

      }

   }

   if (flag == 1)

      printf ("search is successful");

   else

   printf("search is unsuccessful");

   return 0;

}

输出结果

执行上述程序时,会产生以下结果 -

enter the no: of elements:5

输入元素:23

45

57

89

90

输入一个关键元素:45

search is successful

以上是 用C语言解释二分查找 的全部内容, 来源链接: utcz.com/z/322822.html

回到顶部