> > > ... So, in this case [1,"c"] and [1,"b"] are equivalent, and > their order > is un-important ... From http://en.wikipedia.org/wiki/Stable_sort : Stability: stable sorting algorithms maintain the relative order of records with equal keys (i.e. values). That is, a sorting algorithm is stable if whenever there are two records R and S with the same key and with R appearing before S in the original list, R will appear before S in the sorted list. cheers Simon

on 2005-12-13 14:16

on 2005-12-13 15:25

Kroeger, Simon (ext) wrote: >>> >> ... So, in this case [1,"c"] and [1,"b"] are equivalent, and >> their order >> is un-important ... > > From http://en.wikipedia.org/wiki/Stable_sort : > > Stability: stable sorting algorithms maintain the relative order > of records with equal keys (i.e. values). That is, a sorting algorithm > is stable if whenever there are two records R and S with the same > key and with R appearing before S in the original list, R will appear > before S in the sorted list. It's pretty easy to transform every sorting operation into a stable one: orig: enum.sort_by {|x| calculate_key(x)} stable: i=0 enum.sort_by {|x| [calculate_key(x), i+=1]} Kind regards robert