class Array
Public Instance Methods
butterfly_sort_by(&criteria)
click to toggle source
Let a
is {Array}. Let as
is a.
{#sort_by}(&criteria)
. Then as.
{#butterfly_sort_by}(&criteria) = [as[n], as[0], as[n-1], as[1], as[n-2], as[2], as[n-3], as[3], …]
.
@yieldparam [Object] item @yieldreturn [Comparable] @return [Array]
# File lib/array/butterfly_sort_by.rb, line 12 def butterfly_sort_by(&criteria) a = sort_by(&criteria) r = Array.new(a.size) (0...(a.size >> 1)).each do |i| r[i*2] = a[-i-1] r[i*2+1] = a[i] end if a.size.odd? then r[-1] = a[a.size >> 1] end return r end