Member Avatar for chris53825

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

Member Avatar for chris53825

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.

Member Avatar for chris53825

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.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.