The stupid question is the question not asked PerlMonks

### Re: sort with fewest moves

by jlongino (Parson)
 on Feb 10, 2002 at 17:21 UTC ( #144477=note: print w/replies, xml ) Need Help??

in reply to sort with fewest moves

If this were homework (but of course it's not), I imagine a teacher would be very impressed if one of their students developed a uniquely Perl solution. Instead of trying to move elements around one at a time, come up with an algorithm to swap at least two elements.

For example, with Perl you could solve this specific problem with the following two statements:

```(\$slots[1], \$slots[2]) = (\$slots[2], \$slots[1]);
(\$slots[2], \$slots[3]) = (\$slots[3], \$slots[2]);
and, of course, with one statement:
```(\$slots[1], \$slots[2], \$slots[3]) = (\$slots[2], \$slots[3], \$slots[1]);
Coming up with an algorithm for two in-place swaps shouldn't be too difficult (I've already shown you the Perl idiom), ++ if you can handle more than two elements at a time.

--Jim

Update: Well, that's the algorithm part I alluded to, your list of moves for the 2-element swap would look like this:

• swap(1, 2)
• swap(2, 3)
Granted trying to notate a 3 at-a-time swap would be difficult, if even possible (thus the ++).

If we'd known that you had to use a one-armed robot to begin with, the replies might have been more useful. ;)

Replies are listed 'Best First'.
Re: Re: sort with fewest moves
by axelrose (Scribe) on Feb 10, 2002 at 19:25 UTC
Do you mean something like
```@slots = @slots[2,1,4,3]
It looks nice but I really need a list of move actions for the robot.

Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://144477]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (4)
As of 2022-01-25 12:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
In 2022, my preferred method to securely store passwords is:

Results (66 votes). Check out past polls.

Notices?