用 C 语言解释二分查找

cserver side programmingprogramming更新于 2024/11/22 15:27:00

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

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

  • 如果中间元素与键匹配,则查找将在此处成功结束

  • 如果中间元素大于键,则查找将在左侧分区中进行

  • 如果中间元素小于键,则查找将在右侧分区中进行。

输入 (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("enter the elements:");
   for(i=0; i<n; i++)
      scanf( "%d", &a[i]);
   printf("enter a key element:");
   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
enter the elements:23
45
57
89
90
enter a key element:45
search is successful

相关文章