Skip to content

Part of fastpass in 'sort.list' can make sorting unstable

3 messages · Suharto Anggono Suharto Anggono, Gabriel Becker, Luke Tierney

#
In the code of functions 'order' and 'sort.list' in R 3.5.0 alpha (in https://svn.r-project.org/R/branches/R-3-5-branch/src/library/base/R/sort.R), in "fastpass, take advantage of ALTREP metadata", there is "try the reverse since that's easy too...". If it succeeds, ties are reordered, violating stability of sorting.

Example:
x <- sort(c(1, 1, 3))
x  # 1 1 3
sort.list(x, decreasing=TRUE)  # should be 3 1 2
#
Thanks for catching this. This is easy to take out without touching the
rest of the machinery. It also wouldn't be too hard to write a
still-faster-but-not-quite-as-much-path which correctly reverses the
sortedness of a sorted vector that includes ties. My suspicion, without
being the one who will ultimately make that decision, is that that wouldn't
go into 3.5.0 though.

Best,
~G

On Fri, Apr 6, 2018 at 3:03 PM, Suharto Anggono Suharto Anggono via R-devel
<r-devel at r-project.org> wrote:

            

  
    
2 days later
#
Thanks -- fixed in R-devel and R-3-5-branch.

luke
On Fri, 6 Apr 2018, Suharto Anggono Suharto Anggono via R-devel wrote: