Sunday, April 15, 2012

Program 24TH in C++


PROBLEM STATEMENT :

Find number in a circularly sorted array.

SOLUTION :

#include <iostream.h>
#include <cstdio>

using namespace std;

int main()
{
int target;
int a1[]={6,7,8,9,1,2,3};
int a[]={3,1,9,8,7,6,5};
cout<<"\n\nEnter number you want to search : ";
cin>>target;


int min=0;
int max=sizeof(a)/sizeof(int)-1;
while( min <= max && min >=0 && max <=sizeof(a)/sizeof(int)-1)
{
int mid =(min+max)/2;
if(a[mid] == target)
{
cout<<"Found at index "<<mid;
exit(0);
}
else if(a[mid] >= a[min])
{
if(a[min] <= target && target <= a[mid])
{
max=mid-1;
}
else
{
min=mid+1;
}
}
else if(a[mid] <= a[max])
{
if(a[mid] <= target && target <= a[max])
{
min=mid+1;
}
else
{
max=mid-1;
}
}

}
}


No comments:

Post a Comment