1) Substract 1 from each no. 2) Now after substracting 1 from each no, convert it to base n. for example for n=6,the number 36 will be converted to 55. (36-1=35 and 35 when converted to base 6 is 55) 3) Thus all the nos in the range 1 to 6^2 can be mapped to numbers between 00 to 55. 4) Now apply radix sort(for two digits) for the mapped values. 5)After sorting the mapped values convert base n values to decimal and add 1.
This is o(n) algo. PS: I am not the designer of this algo. One of my seniors told me. On Sat, May 5, 2012 at 2:42 PM, saurabh singh <saurab...@gmail.com> wrote: > I think I couldn't make myself clear... > This line in your algorithm "*After this just iterate through the aux > array printing the index aux[i] times.*" > this makes your algorithm O(n^2) since the size of aux is n^2 and in the > worst case the complete traversal of aux may be required. > > Saurabh Singh > B.Tech (Computer Science) > MNNIT > blog:geekinessthecoolway.blogspot.com > > > > On Sat, May 5, 2012 at 2:37 PM, Jeevitesh <jeeviteshshekha...@gmail.com>wrote: > >> Hi Shiva. >> >> You are right we will be wasting a lot of memory. >> But still it depends like if we have lot of numbers in the range of 1, >> n^2 present in the input array then this trade off is not bad. >> The issue here is we cannot otherwise sort it in O(n) time unless and >> until we have extra space. >> >> So we will have to live with it in this case as i do not think it would >> be possible in O(n) time otherwise. >> >> >> On Sat, May 5, 2012 at 2:33 PM, shiv narayan >> <narayan.shiv...@gmail.com>wrote: >> >>> @jeevitesh yeah that may be right but it requires extra space as lot >>> of space will be wasted... >>> >>> On May 5, 1:44 pm, Jeevitesh <jeeviteshshekha...@gmail.com> wrote: >>> > Hi all, >>> > >>> > I am new to this group. >>> > >>> > My last post was deleted i do not know the reason behind it. >>> > >>> > I will explain my logic here:- >>> > >>> > as the range is 1 to n^2 we have a input array like input[n^2]. >>> > We can take a auxillary array of size n^2 like aux[n^2]. >>> > Scan the input array. >>> > For each input input[i] increment by one corresponding aux[input[i]]. >>> > After this just iterate through the aux array printing the index aux[i] >>> > times. >>> > >>> > This way we can sort it in O(n) time. >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > On Sat, May 5, 2012 at 2:02 PM, saurabh singh <saurab...@gmail.com> >>> wrote: >>> > > After giving some thought,I think even radix sort may not be >>> sufficient. >>> > > Complexity of radix sort is O(k*n) where k is the number of buckets >>> > > required to sort the given range. >>> > > The number of buckets is proportional to the number of bits required >>> to >>> > > represent the *maximum number in the given range.*For our case the >>> > > maximum number is O(n^2).Hence *the number of buckets required would >>> be >>> > > proportional to log(n^2) in the worst case.* >>> > > Hence the worst case complexity for the given constraints using >>> radix sort >>> > > would be *O(n*(log n^2)) = O(n*logn).* >>> > > This is no better than comparision sort.A slight optimization that >>> we can >>> > > make is to use a higher base which would reduce the number of buckets >>> > > required but would add the cost of converting each number into the >>> higher >>> > > base. >>> > > Somehow I am getting convinced worst case O(n) algorithm may not be >>> > > possible.Working on the mathematical proof. >>> > >>> > > Saurabh Singh >>> > > B.Tech (Computer Science) >>> > > MNNIT >>> > > blog:geekinessthecoolway.blogspot.com >>> > >>> > > On Sat, May 5, 2012 at 8:37 AM, saurabh singh <saurab...@gmail.com> >>> wrote: >>> > >>> > >> @cegprakash They are n numbers lying in the range 1 to n^2.Not >>> > >> necessarily sorted. >>> > >> eg 3 4 1 2 5 8 (6 numbers satisfying the conditions given in the >>> problem) >>> > >> Saurabh Singh >>> > >> B.Tech (Computer Science) >>> > >> MNNIT >>> > >> blog:geekinessthecoolway.blogspot.com >>> > >>> > >> On Sat, May 5, 2012 at 5:17 AM, Prakash D <cegprak...@gmail.com> >>> wrote: >>> > >>> > >>> The range 1 to n^2 is already sorted >>> > >>> > >>> On Sat, May 5, 2012 at 12:17 AM, Algobiz < >>> deepak.arulkan...@gmail.com> >>> > >>> wrote: >>> > >>> > How to sort n numbers in the range of 1 to n^2 in O(n).. Any >>> ideas? >>> > >>> > >>> > -- >>> > >>> > 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/-/PGgMdaIbGIsJ. >>> > >>> > 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. >>> > >>> > > -- >>> > > 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. >>> > >>> > -- >>> > *Thanks, >>> > Jeevitesh Shekhar Singh.* >>> >>> -- >>> 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. >>> >>> >> >> >> -- >> 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. >> > > -- > 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. > -- Arpit Gupta B.Tech Third Year Computer Science And Engineering M.N.N.I.T Allahabad arpitgupta.211...@gmail.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.