@Gunjan & Nishanth, yes, you both are right. I just missed the basics in dividing it in n/2 logically for each call.
Thanks, Ankit!! On Thu, Mar 3, 2011 at 7:39 PM, Gunjan Sharma <[email protected]> wrote: > Still there is an error it should be > if(a[mid] > mid ) > BsearchElemEqualIndex (a, start, mid); > else > BsearchElemEqualIndex (a, mid + 1, end); > correct me if I am wrong.... > On Thu, Mar 3, 2011 at 7:33 PM, nishaanth <[email protected]> wrote: >> >> Ignore the previous post..there is a small error in the code.. >> @Ankit..your algm is O(n)...you should split the problem size to n/2 at >> every stage...rather you are again computing both the subarrays.. >> Here is the correct code... >> 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 >> { >> if(a[mid] < mid ) >> BsearchElemEqualIndex (a, start, mid); >> else >> 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; >> } >> S.Nishaanth, >> Computer Science and engineering, >> IIT Madras. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. > > > > -- > Regards > Gunjan Sharma > Chairman IEEE Students Chapter IIT Roorkee > B.Tech IV year CSE > Contact No- +91 9997767077 > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
