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