@Umer: I say that you forgot to increment i and decrement j in the loop. But you don't need any loop-counting comparisons at all. Dave
On Tuesday, October 2, 2012 3:36:58 AM UTC-5, Umer Farooq 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 view this discussion on the web visit https://groups.google.com/d/msg/algogeeks/-/eakrSzF7tY0J. 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.