@ Mengal. That's what I thought actually But, he had set the value of arr[0] = elem So, it will stop at zeroth element and won't go to -1th element.
On Mon, Oct 8, 2012 at 12:01 AM, Mangal Dev Gupta <dev.it...@gmail.com>wrote: > *@Dave while( arr[--size] != elem );* > > *Exception will come when it will encounter a[-1]* > *i dont know if this loop will ever end... very poor solution i will say > * > > On Sat, Oct 6, 2012 at 10:00 PM, Umer Farooq <the.um...@gmail.com> wrote: > >> Well actually, I've just gone through Dave's code thoroughly and I >> believe that his code is most appropriate. >> >> Thanks viper11 for providing the explanation. >> >> As for my code, I'd like to replace >> >> while (i!=j) >> >> with >> >> while (i < j) >> >> because != won't work for middle element if the number of elements are >> odd ... and it also won't work if the number of elements are even. >> >> Anyway, thanks Dave for providing us with such a great solution. Please >> keep posting! :-) >> >> And others, thanks for pointing out the issue in my code. >> >> On Sat, Oct 6, 2012 at 9:03 PM, Kalidhakani J <kanikali...@gmail.com>wrote: >> >>> @umer - what if the element to be searched is at the middle of the >>> array? your code doesn't handles this. check out. >>> >>> >>> On Sat, Oct 6, 2012 at 3:38 AM, icy` <vipe...@gmail.com> wrote: >>> >>>> nice solution, Dave! >>>> >>>> @Umer -- if the sought ele is first, then Dave's code has it sitting in >>>> the variable temp for a little while. Loop will stop when size is 0, >>>> since arr[0]==elem. Now he throws temp back into arr[0], which will return >>>> index 0 from the last compare line. >>>> >>>> On Wednesday, October 3, 2012 2:08:56 AM UTC-4, Umer Farooq wrote: >>>>> >>>>> @Dave Thanks for pointing that out. >>>>> >>>>> But I still can't get what if elem is on first element or it is not >>>>> present in the array? How is your code going to handle that situation? >>>>> >>>>> @Atul, Well yes, In the given question, the number of iterations were >>>>> 2n. Which I have reduced to n+n/2. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> On Tue, Oct 2, 2012 at 11:13 PM, atul anand <atul.8...@gmail.com>wrote: >>>>> >>>>>> @umer : how no. of comparison are reduced to half by moving both >>>>>> sides....you have 2 if condition inside, so you are making 2 >>>>>> comparisons at each iteration + n/2 comparison for while loop so >>>>>> number of comparisons are n+n/2 >>>>>> >>>>>> On 10/2/12, Umer Farooq <the....@gmail.com> wrote: >>>>>> > why don't we try it from both ends ... something like this: >>>>>> > >>>>>> > int i = 0; j = size-1; >>>>>> > >>>>>> > while (i != j) >>>>>> > { >>>>>> > if (arr[i] == elem) >>>>>> > return arr[i]; >>>>>> > if (arr[j] == elem) >>>>>> > return arr[j]; >>>>>> > } >>>>>> > >>>>>> > this way, we have eliminated half of the comparisons in for loop? >>>>>> What do >>>>>> > you guys say? >>>>>> > >>>>>> > On Tue, Oct 2, 2012 at 12:18 PM, rafi <rafiw...@gmail.com> wrote: >>>>>> > >>>>>> >> Vikas is right! >>>>>> >> while (n) is equal to (while n!=0) >>>>>> >> you have 2n compares! >>>>>> >> >>>>>> >> בתאריך יום שני, 1 באוקטובר 2012 12:12:21 UTC+2, מאת vikas: >>>>>> >> >>>>>> >>> still there is no improvement, compiler will generate the code to >>>>>> >>> compare >>>>>> >>> with zero here. what you have accomplished is , hide it from >>>>>> human eyes >>>>>> >>> >>>>>> >>> On Monday, 1 October 2012 15:25:09 UTC+5:30, Navin Kumar wrote: >>>>>> >>>> >>>>>> >>>> @atul: >>>>>> >>>> still it won't compare 0 th element. Slight modification in your >>>>>> code: >>>>>> >>>> >>>>>> >>>> n=*sizeof(arr)*; >>>>>> >>>> do >>>>>> >>>> { >>>>>> >>>> if(elem==arr[*--n*]) >>>>>> >>>> print found; >>>>>> >>>> >>>>>> >>>> }while(n); >>>>>> >>>> >>>>>> >>>> On Mon, Oct 1, 2012 at 9:50 AM, atul anand <atul.8...@gmail.com> >>>>>> wrote: >>>>>> >>>> >>>>>> >>>>> yes, but there no need of checking outside the loop >>>>>> >>>>> >>>>>> >>>>> n=sizeof(arr)-1; >>>>>> >>>>> do >>>>>> >>>>> { >>>>>> >>>>> if(elem==arr[n]) >>>>>> >>>>> print found; >>>>>> >>>>> n--; >>>>>> >>>>> >>>>>> >>>>> }while(n); >>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> >>>>>> >>>>> On Mon, Oct 1, 2012 at 9:33 AM, Navin Kumar >>>>>> >>>>> <algorit...@gmail.com>wrote: >>>>>> >>>>> >>>>>> >>>>>> @atul: keep one more checking outside loop for element at 0 th >>>>>> index. >>>>>> >>>>>> Because when n = 0 the your loop come out from the loop >>>>>> without >>>>>> >>>>>> comparing >>>>>> >>>>>> it. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Oct 1, 2012 at 8:55 AM, atul anand >>>>>> >>>>>> <atul.8...@gmail.com>wrote: >>>>>> >>>>>> >>>>>> >>>>>>> n=sizeof(arr); >>>>>> >>>>>>> n--; >>>>>> >>>>>>> >>>>>> >>>>>>> while(n) >>>>>> >>>>>>> { >>>>>> >>>>>>> if(elem=arr[n]) >>>>>> >>>>>>> print found; >>>>>> >>>>>>> >>>>>> >>>>>>> n--; >>>>>> >>>>>>> >>>>>> >>>>>>> } >>>>>> >>>>>>> >>>>>> >>>>>>> On Sun, Sep 30, 2012 at 2:56 PM, רפי וינר <rafiw...@gmail.com >>>>>> > >>>>>> >>>>>>> wrote: >>>>>> >>>>>>> >>>>>> >>>>>>>> Hi >>>>>> >>>>>>>> i was in an interview and was given a simple function >>>>>> >>>>>>>> int arrExsits(int* arr,int size,int elem){ >>>>>> >>>>>>>> for (int i=0;i<size;++i) >>>>>> >>>>>>>> if(elem==arr[i]) >>>>>> >>>>>>>> return i; >>>>>> >>>>>>>> return -1; >>>>>> >>>>>>>> } >>>>>> >>>>>>>> this function does 2n compares >>>>>> >>>>>>>> n- the if statment >>>>>> >>>>>>>> n-check that i is smaller then size >>>>>> >>>>>>>> i was suppose to give an optimal (less compares) solution so >>>>>> i gave >>>>>> >>>>>>>> >>>>>> >>>>>>>> int arrExsits(int* arr,int size,int elem){ >>>>>> >>>>>>>> if (arr[size-1]==elem) >>>>>> >>>>>>>> return size-1; >>>>>> >>>>>>>> arr[size-1]=elem] >>>>>> >>>>>>>> for (int i=0;;++i) >>>>>> >>>>>>>> if(elem==arr[i]){ >>>>>> >>>>>>>> if (i!=size-1) >>>>>> >>>>>>>> return i; >>>>>> >>>>>>>> return -1; >>>>>> >>>>>>>> } >>>>>> >>>>>>>> this solution works and it has n+2 compares the first one >>>>>> another n >>>>>> >>>>>>>> and the second inner if. >>>>>> >>>>>>>> they told me it's good (and I've passed) but they told just >>>>>> for my >>>>>> >>>>>>>> knowledge that there is a better N compare solution. >>>>>> >>>>>>>> I've searched the web but couldn't find it. >>>>>> >>>>>>>> anybody knows? >>>>>> >>>>>>>> Thanks >>>>>> >>>>>>>> >>>>>> >>>>>>>> -- >>>>>> >>>>>>>> You received this message because you are subscribed to the >>>>>> Google >>>>>> >>>>>>>> Groups "Algorithm Geeks" group. >>>>>> >>>>>>>> To post to this group, send email to >>>>>> algo...@googlegroups.com. >>>>>> >>>>>>>> To unsubscribe from this group, send email to >>>>>> >>>>>>>> algogeeks+...@googlegroups.com****. >>>>>> >>>>>>>> For more options, visit this group at >>>>>> http://groups.google.com/** >>>>>> >>>>>>>> group/algogeeks?hl=en<http://**groups.google.com/group/** >>>>>> algogeeks?hl=en <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 algo...@googlegroups.com >>>>>> . >>>>>> >>>>>>> To unsubscribe from this group, send email to >>>>>> >>>>>>> algogeeks+...@googlegroups.com****. >>>>>> >>>>>>> For more options, visit this group at >>>>>> http://groups.google.com/** >>>>>> >>>>>>> group/algogeeks?hl=en<http://**groups.google.com/group/** >>>>>> algogeeks?hl=en <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 algo...@googlegroups.com. >>>>>> >>>>>> To unsubscribe from this group, send email to >>>>>> >>>>>> algogeeks+...@googlegroups.com****. >>>>>> >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/** >>>>>> >>>>>> group/algogeeks?hl=en >>>>>> >>>>>> <http://groups.google.com/**group/algogeeks?hl=en<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 algo...@googlegroups.com. >>>>>> >>>>> To unsubscribe from this group, send email to >>>>>> >>>>> algogeeks+...@googlegroups.com****. >>>>>> >>>>> For more options, visit this group at >>>>>> http://groups.google.com/** >>>>>> >>>>> group/algogeeks?hl=en >>>>>> >>>>> <http://groups.google.com/**group/algogeeks?hl=en<http://groups.google.com/group/algogeeks?hl=en> >>>>>> >. >>>>>> >>>>> >>>>>> >>>> >>>>>> >>>> -- >>>>>> >> You received this message because you are subscribed to the Google >>>>>> Groups >>>>>> >> "Algorithm Geeks" group. >>>>>> >> To view this discussion on the web visit >>>>>> >> https://groups.google.com/d/**msg/algogeeks/-/SwuLNscTCOoJ<https://groups.google.com/d/msg/algogeeks/-/SwuLNscTCOoJ> >>>>>> . >>>>>> >> >>>>>> >> To post to this group, send email to algo...@googlegroups.com. >>>>>> >> To unsubscribe from this group, send email to >>>>>> >> algogeeks+...@**googlegroups.com. >>>>>> >> For more options, visit this group at >>>>>> >> http://groups.google.com/**group/algogeeks?hl=en<http://groups.google.com/group/algogeeks?hl=en> >>>>>> . >>>>>> >> >>>>>> > >>>>>> > >>>>>> > >>>>>> > -- >>>>>> > Umer >>>>>> > >>>>>> > -- >>>>>> > You received this message because you are subscribed to the Google >>>>>> Groups >>>>>> > "Algorithm Geeks" group. >>>>>> > To post to this group, send email to algo...@googlegroups.com. >>>>>> > To unsubscribe from this group, send email to >>>>>> > algogeeks+...@**googlegroups.com. >>>>>> > For more options, visit this group at >>>>>> > http://groups.google.com/**group/algogeeks?hl=en<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 algo...@googlegroups.com. >>>>>> To unsubscribe from this group, send email to algogeeks+...@** >>>>>> googlegroups.com. >>>>>> For more options, visit this group at http://groups.google.com/** >>>>>> group/algogeeks?hl=en<http://groups.google.com/group/algogeeks?hl=en> >>>>>> . >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Umer >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msg/algogeeks/-/MCOQyzdtcAMJ. >>>> 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. >>> >> >> >> >> -- >> Umer >> >> -- >> 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. >> > > > > -- > Mangal Dev > Ph No. 7411627654 > Member Technical Staff > Oracle India Pvt Ltd > mangal....@oracle.com <mangal.d...@oracle.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. > -- Umer -- 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.