I have a doubt. If u r doing inplace sorting of a word during checks for a
word, wouldnt that change that word there itself? then how will the
original anagram get restored to arrange in the output in sorted manner?

On Thu, May 24, 2012 at 5:54 PM, Jitender Kumar <jitender...@gmail.com>wrote:

> The complexity will be (N^2)W because the sorting can be done linear time
> O(W) for strings.
>
>
> On Thu, May 24, 2012 at 3:44 PM, WgpShashank 
> <shashank7andr...@gmail.com>wrote:
>
>> Yeah , its the in-place approach strikes in mind at first look , just
>> slightly clearing the complexity to O(N^2* Wlog(W)) , N is number of
>> words in array & W is length of longest word in array , let me know i
>> missed something ?
>>
>>  original                 eat I ate att I the eel eth het
>>  after sorting          I I ate att can eat eel eth het the
>>
>> output should be  I I ate eat att can eel eth het the
>>
>> Shashank Mani Narayan
>> Computer Science & Engineering
>> Birla Institute of Technology,Mesra
>> Founder Cracking The Code Lab  "http://shashank7s.blogspot.com/";
>> FB Page http://www.facebook.com/pages/LestCode
>> Google+ http://gplus.to/wgpshashank
>> Twitter "https://twitter.com/wgpshashank";
>> Puzzled Guy @ "http://ashutosh7s.blogspot.com";
>> FB Page http://www.facebook.com/Puzzles.For.Puzzled.Minds
>>
>>
>> On May 22, 8:18 am, Navin Gupta <navin.nit...@gmail.com> wrote:
>> > It can be done inplace, then Time Complexity will be O( N^2 x W ) where
>> N
>> > is no. of words and  W is word size.
>> > Start from the left and sort the current word.
>> > Keep a pointer  PTR  to the first index of the element left to process.
>> > Initially it will be 0.As we add words this pointer moves forwards.
>> > Now iterate the whole list of words to find all those words having same
>> > sorted sequence i.e. anagrams
>> > Whenver we get a word which is anagram of the current string, swap it
>> with
>> > the string  pointed by PTR, move PTR forward.
>> >
>> > pseudoCode :-
>> >
>> > func( vector<string> v)
>> > {
>> >    int n=v.size();
>> >    for(int i=0;i<n;i++)
>> >    {
>> >       string currentWord = v[i];
>> >       sort(currentWord);
>> >       for(int j=i+1;j<n;j++)
>> >       {
>> >           if ( sort(v[j]) == currentWord )    // anagrams found,
>> >           {
>> >                swap( v[i] , v[j] );                 //move this string
>> to
>> > the position next to pos of currentWord
>> >                  i++;                                //and move the
>> index
>> > of currentWord forward
>> >           }
>> >      }
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > }
>>
>> --
>> 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.
>>
>>
>
>
> --
> With regards,
>
> Jitender Kumar
> 3rd year (Computer Engineering)
> NIT Kurukshetra
> Kurukshetra- 136119
>  Mobile  +91-8529035751
>
>  --
> 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.
>



-- 
Regards
Anika Jain

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

Reply via email to