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<javascript:> > > 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 <javascript:>> 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 <javascript:>> >> 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> >> >>>>>>>> . >> >>>>>>>> >> >>>>>>> >> >>>>>>> -- >> >>>>>>> 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> >> >>>>>> . >> >>>>>> >> >>>>> >> >>>>> -- >> >>>>> 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 view this discussion on the web visit >> >> https://groups.google.com/d/msg/algogeeks/-/SwuLNscTCOoJ. >> >> >> >> To post to this group, send email to algo...@googlegroups.com<javascript:> >> . >> >> To unsubscribe from this group, send email to >> >> algogeeks+...@googlegroups.com <javascript:>. >> >> 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 algo...@googlegroups.com<javascript:> >> . >> > To unsubscribe from this group, send email to >> > algogeeks+...@googlegroups.com <javascript:>. >> > 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 algo...@googlegroups.com<javascript:> >> . >> To unsubscribe from this group, send email to >> algogeeks+...@googlegroups.com <javascript:>. >> 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 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.