用 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