I forgot to mention
Time complexity: O(n), Space complexity: O(1)
Assuming you accept my solution :-)

On Mon, Feb 28, 2011 at 9:27 PM, Vinay Pandey <babbupan...@gmail.com> wrote:

> Hi,
>
> Here is my solution, let me know:
>
>
> /* a helper function */
> void swap(int* arr, int index1, int index2) {
> /* this is only to swap to integers */
>  arr[index1] = arr[index1]^arr[index2];
> arr[index2] = arr[index1]^arr[index2];
>  arr[index1] = arr[index1]^arr[index2];
> }
>
> /* Actual switching */
> void switch(int* arr, int length) {
> if(length%2!=0 && length<2) {
>  cout<<"Cannot switch in this case";
> return;
> }
>  int index = length-1, first=0, second=0;
> bool flag = 0;
> while(index>=2) {
>  if(flag == 0) {
> swap(arr, (index+1)/2, index);
> }
>  if(flag == 1) {
> swap(arr, index/2 + 1, index);
> swap(arr, (index+1)/2, index);
>  }
> index-=2;
> flag=(flag==0)?1:0;
>  }
> }
>
>
> On Mon, Feb 28, 2011 at 4:32 PM, Dave <dave_and_da...@juno.com> wrote:
>
>> @Arpit: The problem is that for certain values of n, you get more than
>> one cycle, and the cycles are disjoint. You have to find all of the
>> disjoint cycles and move the elements in each one.
>>
>> Dave
>>
>> On Feb 28, 12:25 pm, Arpit Sood <soodfi...@gmail.com> wrote:
>> > well space complexity should be mentioned in the question then, anyway,
>> > start with the second element put it at its correct location(say x),
>> then
>> > take x put it at its correct location, this was when you do this n-1
>> time,
>> > you will get the correct answer because it forms a cycle.
>> >
>> >
>> >
>> > On Mon, Feb 28, 2011 at 11:33 PM, bittu <shashank7andr...@gmail.com>
>> wrote:
>> > > @arpit otherwise it wont b amzon quest..
>> > >                 space dude..space is constants
>> >
>> > > Thanks
>> > > Shashank
>> >
>> > > --
>> > > 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.- Hide quoted text -
>> >
>> > - Show quoted text -
>>
>> --
>> 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.

Reply via email to