A friend of mine wanted to see if I could figure this out.. and it's driving me crazy!! Maybe I'm just over thinking it? Anyways, can anyone figure this out?

Design an algorithm to sort a deck of cards with the restriction that the cards must be kept stacked in the deck, and the only allowed operations are to look at the value of the top two cards, to exchange the top two cards, and to move the top card to the bottom of the deck

Well, what I have so far is something like bubble sort. Apparently I'm missing something since it doesn't produce correct results.

a) Assume cards have values 0-51
b) If card A is less than card B do nothing, else swap.
c) Put card A on the bottom of the deck, repeat 52 times (51?).


For example

1 2 3 4 4 4 4 ... Which means it will continue looping in the incorrect
2 3 4 1 2 3 1 sequence and therefore never sort.
3 4 1 2 3 1 2
4 1 2 3 1 2 3

Perhaps start with a deck of cards (or maybe just one suit for easy handling), and try your algorithm out for real.

Perhaps start with a deck of cards (or maybe just one suit for easy handling), and try your algorithm out for real.

I am actually Lol, the current method I've posted doesn't work and I've tried various other ways. Any ideas...?

Stop trying to write code before you've fully understood the process for one thing.

Shuffle a suit, then look at the cards to see what order they're in.
Then implement your "algorithm" until you've moved 13 cards, then look at them again to see how the situation has changed.
- are they fully sorted
- are they still unsorted, but it's looking a bit better
- is it the same as it was before.

This article has been dead for over six months. Start a new discussion instead.