in reply to Re: Patience Sorting To Find Longest Increasing Subsequence
in thread Patience Sorting To Find Longest Increasing Subsequence
If you take advantage of the fact that the top cards are already in ascending order, you can select the top card of the left most pile and then move that pile to keep the new top card in ascending order. To find the new location using a binary search you have O(Log N). To insert in the middle is O(N). Since you have to do this for N items, you result in O(N^2 Log N). A merge sort is only O(N^2) worst case so no, I don't think so.
As I said in the other reply, using a different datastructure could make the finishing of the sort more efficient but it also adds a great deal more complexity. You are welcome to use a Van_Emde_Boas_tree which claims to be able to do the whole thing in O(N Log N) but that is an exercise left for the reader.
Cheers - L~R
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Patience Sorting To Find Longest Increasing Subsequence
by demerphq (Chancellor) on May 06, 2006 at 09:02 UTC | |
by Limbic~Region (Chancellor) on May 06, 2006 at 14:11 UTC | |
by demerphq (Chancellor) on May 07, 2006 at 19:10 UTC |