OFFSET
1,2
COMMENTS
From Stephen E. Witham, Oct 13 2009: (Start)
Starting the sequence (and its index) at 1 (as in A082008) instead of 0 (as in A082007) seems more natural. This was conceived as a way to arrange a heapsort in memory to improve locality of reference. The classic Williams/Floyd heapsort also works a little more naturally when the origin is 1.
This sequence is a permutation of the integers >= 1. (End)
Moreover, the first 2^2^n - 1 terms are a permutation of the first 2^2^n - 1 positive integers. - Ivan Neretin, Mar 12 2017
LINKS
Ivan Neretin, Table of n, a(n) for n = 1..8191
Steve Witham, Clumpy Heapsort.
MATHEMATICA
w = {{1}}; Do[k = 2^Floor@Log2[n - 1]; AppendTo[w, Flatten@Table[w[[n - k]] + (2^k - 1) i, {i, 2^k}]], {n, 2, 7}]; a = Flatten@w (* Ivan Neretin, Mar 12 2017 *)
PROG
(Python)
def A082008( n ):
if n == 1: return 1
y = 2 ** int( log( n, 2 ) )
yc = 2 ** 2 ** int( log( log( y, 2 ), 2 ) )
yr = y // yc
return (yc-1) * int( (n-y) / yr + 1 ) + A082008( yr + n % yr )
# Stephen E. Witham, Oct 13 2009
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
N. J. A. Sloane, Oct 06 2009, based on a posting by Stephen E. Witham to the Math Fun Mailing List, Sep 30 2009
STATUS
approved
