Re: [Gpsbabel-code] Fix for partial ordering in duplicate.c
Brought to you by:
robertl
From: Ron P. <ro...@pa...> - 2003-06-25 15:06:06
|
At 09:58 AM 6/25/2003 -0500, Robert Lipe wrote: >If so, it's odd that we have different comparisons for date and index. > If exported if a < b return 1 > if index if a < b return -1 >is that right? Yep, that's right. The reason is that we want to sort in reverse order by date, but forward order by index. So if we have four records: date index June 24 0 June 25 1 June 25 2 June 24 3 we want to sort them like this: date index June 25 1 June 25 2 June 24 0 June 24 3 Thus, the first point we come across is the latest point, but if we have two points with the same export date/time, we will first see the one with the smaller index (i.e. the first of those two points that we came across while importing waypoints.) In the (common) case that we have no exported dates, the dates will all be zero so the sort will end up being an expensive no-op (expensive because, sadly, quicksort can be O(n^2) on presorted elements.) |