cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

Showing 1-4 of 4 results.

A288964 Number of key comparisons to sort all n! permutations of n elements by quicksort.

Original entry on oeis.org

0, 0, 2, 16, 116, 888, 7416, 67968, 682272, 7467840, 88678080, 1136712960, 15655438080, 230672171520, 3621985113600, 60392753971200, 1065907048550400, 19855856150323200, 389354639411404800, 8017578241634304000, 172991656889856000000, 3903132531903897600000
Offset: 0

Views

Author

Daniel Krenn, Jun 20 2017

Keywords

Comments

From Petros Hadjicostas, May 04 2020: (Start)
Depending on the assumptions used in the literature, the average number to sort n items in random order by quicksort appears as -C*n + 2*(1+n)*HarmonicNumber(n), where C = 2, 3, or 4. (To get the number of key comparisons to sort all n! permutations of n elements by quicksort, multiply this number by n!.)
For this sequence, we have C = 4. The corresponding number of key comparisons to sort all n! permutations of n elements by quicksort when C = 3 is A063090(n). Thus, a(n) = A063090(n) - n!*n.
For more details, see my comments and references for sequences A093418, A096620, and A115107. (End)

Crossrefs

Programs

  • Maple
    a:= proc(n) option remember; `if`(n<3, n*(n-1),
          ((2*n^2-3*n-1)*a(n-1)-(n-1)^2*n*a(n-2))/(n-2))
        end:
    seq(a(n), n=0..25);  # Alois P. Heinz, Jun 21 2017
  • Mathematica
    a[n_] := n! (2(n+1)HarmonicNumber[n] - 4n);
    a /@ Range[0, 25] (* Jean-François Alcover, Oct 29 2020 *)
  • SageMath
    [n.factorial() * (2*(n+1)*sum(1/k for k in srange(1, n+1)) - 4*n) for n in srange(21)]
    
  • SageMath
    # alternative using the recurrence relation
    @cached_function
    def c(n):
        if n <= 1:
            return 0
        return (n - 1) + 2/n*sum(c(i) for i in srange(n))
    [n.factorial() * c(n) for n in srange(21)]

Formula

a(n) = n!*(2*(n+1)*H(n) - 4*n).
c(n) = a(n) / n! satisfies c(n) = (n-1) + 2/n * Sum_{i < n} c(i).
a(n) = 2*A002538(n-1), n >= 2. - Omar E. Pol, Jun 20 2017
E.g.f.: -2*log(1-x)/(1-x)^2 - 2*x/(1-x)^2. - Daniel Krenn, Jun 20 2017
a(n) = ((2*n^2-3*n-1)*a(n-1) -(n-1)^2*n*a(n-2))/(n-2) for n >= 3, a(n) = n*(n-1) for n < 3. - Alois P. Heinz, Jun 21 2017
From Petros Hadjicostas, May 03 2020: (Start)
a(n) = A063090(n) - n!*n for n >= 1.
a(n) = n!*A115107(n)/A096620(n) = n!*(-n + A093418(n)/A096620(n)). (End)

A288970 Number of key comparisons to sort all n! permutations of n elements by the optimal trial-pivot quicksort.

Original entry on oeis.org

0, 0, 2, 16, 112, 848, 7032, 64056, 639888, 6974928, 82531296, 1054724256, 14487894144, 212971227264
Offset: 0

Views

Author

Daniel Krenn, Jun 20 2017

Keywords

Comments

The 3 pivot elements are chosen from fixed indices (e.g., the last 3 elements). The "optimal" strategy minimizes, after the choice of the pivots is done, the expected partitioning cost.

Crossrefs

Extensions

a(9)-a(11) from Melanie Siebenhofer, Jan 29 2018
a(12)-a(13) from Melanie Siebenhofer, Feb 02 2018

A117628 Let f(n) = average number of comparisons needed for sorting n elements using merge insertion. Sequence gives n!*f(n).

Original entry on oeis.org

0, 2, 16, 112, 832, 6912, 62784, 623232
Offset: 1

Views

Author

N. J. A. Sloane, Oct 06 2006

Keywords

References

  • D. E. Knuth, TAOCP, Vol. 3, Section 5.3.1.

Crossrefs

A117627 is a lower bound for any comparison-based sorting algorithm.

A215476 Minimum number of comparisons needed to find the median of n elements.

Original entry on oeis.org

0, 1, 3, 4, 6, 8, 10, 12, 14, 16, 18, 20, 23
Offset: 1

Views

Author

Jeff Erickson, Aug 12 2012

Keywords

Comments

Dor and Zwick 1999 prove a(n) <= 2.95n + o(n).
Dor and Zwick 2001 prove a(n) >= (2+2^(-80))n - o(n).

References

  • D. Dor and U. Zwick, Median selection requires (2+epsilon)n comparisons, SIAM J. Discrete Math 14(3):312-325, 2001.
  • D. Dor and U. Zwick, Selecting the median, SIAM J. Comput. 28(5):1722-1758, 1999.
  • D. E. Knuth, The Art of Computer Programming, Vol. 3, 2nd edition, Sect. 5.3.2.
  • Kenneth Oksanen, Searching for selection algorithms, Elec. Notes Discrete Math. 27:77, 2006.

Crossrefs

Formula

a(n) = A360495(n,ceiling(n/2)). - Paolo Xausa, Apr 09 2023

Extensions

Added three more terms (from Kenneth Oksanen), Jeff Erickson, Aug 13 2012
Showing 1-4 of 4 results.