Hi,

Here is the code to do this using Bsearch in o(logn) time.

int BsearchElemEqualIndex (int *a, int start, int end)
{
        int mid = (((end - start) >> 1) + start);
        if (a[mid] == mid)
                return a[mid];
        else if (a[mid] != mid)
        {
                if (mid == start || mid == end)
                {
                        return -1;
                }
                else
                {
                        BsearchElemEqualIndex (a, start, mid);
                        BsearchElemEqualIndex (a, mid + 1, end);
                }
        }
}

int _tmain(int argc, _TCHAR* argv[])
{
        int a[SIZE] = {5,9,3,8,1,2,6,7};
        int x = BsearchElemEqualIndex (a, 0, SIZE);
        printf ("%d", x);
        system ("PAUSE");
        return 0;
}

Cheers,
Ankit!!!

On Thu, Mar 3, 2011 at 11:04 AM, Param10k <paramesh...@gmail.com> wrote:
> There is a sorted array and you have to write a fn to find a number in
> the array which satisfies
>
> A[i] = i ; where A is the array and i is the index...
>
> - Param
> http://teknotron-param.blogspot.com/
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to 
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/algogeeks?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to