Problem No.
Problem Name:
Problem Description:
Algorithm:
Step 1: Set BEG=LB, END=UB and MID=INT((BEG+END)/2).
Step 2: Repeat steps 3 and 4 while BEG<=END and DATA [MID]≠ITEM.
Step 3: If ITEM<DATA[MID], then
Set END=MID-1.
Else: set BEG=MID+1.
Step 4: Set MID=INT((BEG+END)/2).
Step 5: If ITEM<DATA[MID], then:
Set LOC=MID.
Else: set LOC=MID+1.
Step 6: Insert ITEM into DATA[LOC].
Step 7: Exit.
Flow Chart:
Source Code:
#include<stdio.h>
int main(){
int n,DATA[50],i,BEG,END,MID,ITEM,LOC;
printf("enter number of elements\n");
scanf("%d",&n);
printf("enter %d elements of an array\n",n);
for(i=1;i<=n;i++)
scanf("%d",&DATA[i]);
printf("enter a value to check\n");
scanf("%d",&ITEM);
BEG=1;
END=n;
MID=((BEG+END)/2);
while(BEG<=END && DATA[MID]!=ITEM){
if(ITEM<DATA[MID]){
END=MID-1;}
else{
BEG=MID+1;
MID=((BEG+END)/2);
if(DATA[MID]==ITEM){
LOC=MID;
printf("%d is found in the LOC=%d\n",ITEM,LOC);
else{
printf("not found\n");
return 0;