login
A082008
a(n) = A082007(n-1) + 1.
3
1, 2, 3, 4, 7, 10, 13, 5, 6, 8, 9, 11, 12, 14, 15, 16, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211, 226, 241, 17, 18, 32, 33, 47, 48, 62, 63, 77, 78, 92, 93, 107, 108, 122, 123, 137, 138, 152, 153, 167, 168, 182, 183, 197, 198, 212, 213, 227, 228
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
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
Sequence in context: A321684 A117220 A118426 * A105330 A097545 A202016
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