*@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.