Divide-Conquer: Quickselect, Quicksort and Master Theorem
Total Page:16
File Type:pdf, Size:1020Kb

Load more
Recommended publications
-
Time Complexity
Chapter 3 Time complexity Use of time complexity makes it easy to estimate the running time of a program. Performing an accurate calculation of a program’s operation time is a very labour-intensive process (it depends on the compiler and the type of computer or speed of the processor). Therefore, we will not make an accurate measurement; just a measurement of a certain order of magnitude. Complexity can be viewed as the maximum number of primitive operations that a program may execute. Regular operations are single additions, multiplications, assignments etc. We may leave some operations uncounted and concentrate on those that are performed the largest number of times. Such operations are referred to as dominant. The number of dominant operations depends on the specific input data. We usually want to know how the performance time depends on a particular aspect of the data. This is most frequently the data size, but it can also be the size of a square matrix or the value of some input variable. 3.1: Which is the dominant operation? 1 def dominant(n): 2 result = 0 3 fori in xrange(n): 4 result += 1 5 return result The operation in line 4 is dominant and will be executedn times. The complexity is described in Big-O notation: in this caseO(n)— linear complexity. The complexity specifies the order of magnitude within which the program will perform its operations. More precisely, in the case ofO(n), the program may performc n opera- · tions, wherec is a constant; however, it may not performn 2 operations, since this involves a different order of magnitude of data. -
Quick Sort Algorithm Song Qin Dept
Quick Sort Algorithm Song Qin Dept. of Computer Sciences Florida Institute of Technology Melbourne, FL 32901 ABSTRACT each iteration. Repeat this on the rest of the unsorted region Given an array with n elements, we want to rearrange them in without the first element. ascending order. In this paper, we introduce Quick Sort, a Bubble sort works as follows: keep passing through the list, divide-and-conquer algorithm to sort an N element array. We exchanging adjacent element, if the list is out of order; when no evaluate the O(NlogN) time complexity in best case and O(N2) exchanges are required on some pass, the list is sorted. in worst case theoretically. We also introduce a way to approach the best case. Merge sort [4]has a O(NlogN) time complexity. It divides the 1. INTRODUCTION array into two subarrays each with N/2 items. Conquer each Search engine relies on sorting algorithm very much. When you subarray by sorting it. Unless the array is sufficiently small(one search some key word online, the feedback information is element left), use recursion to do this. Combine the solutions to brought to you sorted by the importance of the web page. the subarrays by merging them into single sorted array. 2 Bubble, Selection and Insertion Sort, they all have an O(N2) In Bubble sort, Selection sort and Insertion sort, the O(N ) time time complexity that limits its usefulness to small number of complexity limits the performance when N gets very big. element no more than a few thousand data points. -
Triangular Numbers /, 3,6, 10, 15, ", Tn,'" »*"
TRIANGULAR NUMBERS V.E. HOGGATT, JR., and IVIARJORIE BICKWELL San Jose State University, San Jose, California 9111112 1. INTRODUCTION To Fibonacci is attributed the arithmetic triangle of odd numbers, in which the nth row has n entries, the cen- ter element is n* for even /?, and the row sum is n3. (See Stanley Bezuszka [11].) FIBONACCI'S TRIANGLE SUMS / 1 =:1 3 3 5 8 = 2s 7 9 11 27 = 33 13 15 17 19 64 = 4$ 21 23 25 27 29 125 = 5s We wish to derive some results here concerning the triangular numbers /, 3,6, 10, 15, ", Tn,'" »*". If one o b - serves how they are defined geometrically, 1 3 6 10 • - one easily sees that (1.1) Tn - 1+2+3 + .- +n = n(n±M and (1.2) • Tn+1 = Tn+(n+1) . By noticing that two adjacent arrays form a square, such as 3 + 6 = 9 '.'.?. we are led to 2 (1.3) n = Tn + Tn„7 , which can be verified using (1.1). This also provides an identity for triangular numbers in terms of subscripts which are also triangular numbers, T =T + T (1-4) n Tn Tn-1 • Since every odd number is the difference of two consecutive squares, it is informative to rewrite Fibonacci's tri- angle of odd numbers: 221 222 TRIANGULAR NUMBERS [OCT. FIBONACCI'S TRIANGLE SUMS f^-O2) Tf-T* (2* -I2) (32-22) Ti-Tf (42-32) (52-42) (62-52) Ti-Tl•2 (72-62) (82-72) (9*-82) (Kp-92) Tl-Tl Upon comparing with the first array, it would appear that the difference of the squares of two consecutive tri- angular numbers is a perfect cube. -
Physics 403, Spring 2011 Problem Set 2 Due Thursday, February 17
Physics 403, Spring 2011 Problem Set 2 due Thursday, February 17 1. A Differential Equation for the Legendre Polynomials (15 pts): In this prob- lem, we will derive a second order linear differential equation satisfied by the Legendre polynomials (−1)n dn P (x) = [(1 − x2)n] : n 2nn! dxn (a) Show that Z 1 2 0 0 Pm(x)[(1 − x )Pn(x)] dx = 0 for m 6= n : (1) −1 Conclude that 2 0 0 [(1 − x )Pn(x)] = λnPn(x) 0 for λn a constant. [ Prime here and in the following questions denotes d=dx.] (b) Perform the integral (1) for m = n to find a relation for λn in terms of the leading n coefficient of the Legendre polynomial Pn(x) = knx + :::. What is kn? 2. A Generating Function for the Legendre Polynomials (20 pts): In this problem, we will derive a generating function for the Legendre polynomials. (a) Verify that the Legendre polynomials satisfy the recurrence relation 0 0 0 Pn − 2xPn−1 + Pn−2 − Pn−1 = 0 : (b) Consider the generating function 1 X n g(x; t) = t Pn(x) : n=0 Use the recurrence relation above to show that the generating function satisfies the first order differential equation d (1 − 2xt + t2) g(x; t) = tg(x; t) : dx Determine the constant of integration by using the fact that Pn(1) = 1. (c) Use the generating function to express the potential for a point particle q jr − r0j in terms of Legendre polynomials. 1 3. The Dirac delta function (15 pts): Dirac delta functions are useful mathematical tools in quantum mechanics. -
Polynomial Sequences Generated by Linear Recurrences
Innocent Ndikubwayo Polynomial Sequences Generated by Linear Recurrences: Location and Reality of Zeros Polynomial Sequences Generated by Linear Recurrences: Location and Reality of Zeros Linear Recurrences: Location by Sequences Generated Polynomial Innocent Ndikubwayo ISBN 978-91-7911-462-6 Department of Mathematics Doctoral Thesis in Mathematics at Stockholm University, Sweden 2021 Polynomial Sequences Generated by Linear Recurrences: Location and Reality of Zeros Innocent Ndikubwayo Academic dissertation for the Degree of Doctor of Philosophy in Mathematics at Stockholm University to be publicly defended on Friday 14 May 2021 at 15.00 in sal 14 (Gradängsalen), hus 5, Kräftriket, Roslagsvägen 101 and online via Zoom, public link is available at the department website. Abstract In this thesis, we study the problem of location of the zeros of individual polynomials in sequences of polynomials generated by linear recurrence relations. In paper I, we establish the necessary and sufficient conditions that guarantee hyperbolicity of all the polynomials generated by a three-term recurrence of length 2, whose coefficients are arbitrary real polynomials. These zeros are dense on the real intervals of an explicitly defined real semialgebraic curve. Paper II extends Paper I to three-term recurrences of length greater than 2. We prove that there always exist non- hyperbolic polynomial(s) in the generated sequence. We further show that with at most finitely many known exceptions, all the zeros of all the polynomials generated by the recurrence lie and are dense on an explicitly defined real semialgebraic curve which consists of real intervals and non-real segments. The boundary points of this curve form a subset of zero locus of the discriminant of the characteristic polynomial of the recurrence. -
Linear Recurrence Relations: the Theory Behind Them
Linear Recurrence Relations: The Theory Behind Them David Soukup October 29, 2019 Linear Recurrence Relations Contents 1 Foreword ii 2 The matrix diagonalization method 1 3 Generating functions 3 4 Analogies to ODEs 6 5 Exercises 8 6 References 10 i Linear Recurrence Relations 1 Foreword This guide is intended mostly for students in Math 61 who are looking for a more theoretical background to the solving of linear recurrence relations. A typical problem encountered is the following: suppose we have a sequence defined by an = 2an−1 + 3an−2 where a0 = 0; a1 = 8: Certainly this recurrence defines the sequence fang unambiguously (at least for positive integers n), and we can compute the first several terms without much problem: a0 = 0 a1 = 8 a2 = 2 · a1 + 3 · a0 = 2 · 8 + 3 · 0 = 16 a3 = 2 · a2 + 3 · a1 = 2 · 16 + 3 · 8 = 56 a4 = 2 · a3 + 3 · a2 = 2 · 56 + 3 · 16 = 160 . While this does allow us to compute the value of an for small n, this is unsatisfying for several reasons. For one, computing the value of a100 by this method would be time-consuming. If we solely use the recurrence, we would have to find the previous 99 values of the sequence first. Moreover, until we compute it we have no good idea of how large a100 will be. We can observe from the table above that an grows quite rapidly as n increases, but we do not know how to extrapolate this rate of growth to all n. Most importantly, we would like to know the order of growth of this function. -
Analysis of Non-Linear Recurrence Relations for the Recurrence Coefficients of Generalized Charlier Polynomials
Journal of Nonlinear Mathematical Physics Volume 10, Supplement 2 (2003), 231–237 SIDE V Analysis of Non-Linear Recurrence Relations for the Recurrence Coefficients of Generalized Charlier Polynomials Walter VAN ASSCHE † and Mama FOUPOUAGNIGNI ‡ † Katholieke Universiteit Leuven, Department of Mathematics, Celestijnenlaan 200 B, B-3001 Leuven, Belgium E-mail: [email protected] ‡ University of Yaounde, Advanced School of Education, Department of Mathematics, P.O. Box 47, Yaounde, Cameroon E-mail: [email protected] This paper is part of the Proceedings of SIDE V; Giens, June 21-26, 2002 Abstract The recurrence coefficients of generalized Charlier polynomials satisfy a system of non- linear recurrence relations. We simplify the recurrence relations, show that they are related to certain discrete Painlev´e equations, and analyze the asymptotic behaviour. 1 Introduction Orthogonal polynomials on the real line always satisfy a three-term recurrence relation. For monic polynomials Pn this is of the form Pn+1(x)=(x − βn)Pn(x) − γnPn−1(x), (1.1) with initial values P0 = 1 and P−1 = 0. For the orthonormal polynomials pn the recurrence relation is xpn(x)=an+1pn+1(x)+bnpn(x)+anpn−1(x), (1.2) 2 where an = γn and bn = βn. The recurrence coefficients are given by the integrals 2 an = xpn(x)pn−1(x) dµ(x),bn = xpn(x) dµ(x) and can also be expressed in terms of determinants containing the moments of the orthog- onality measure µ [11]. For classical orthogonal polynomials one knows these recurrence coefficients explicitly, but when one uses non-classical weights, then often one does not Copyright c 2003 by W Van Assche and M Foupouagnigni 232 W Van Assche and M Foupouagnigni know the recurrence coefficients explicitly. -
Time Complexity of Algorithms
Time Complexity of Algorithms • If running time T(n) is O(f(n)) then the function f measures time complexity – Polynomial algorithms: T(n) is O(nk); k = const – Exponential algorithm: otherwise • Intractable problem: if no polynomial algorithm is known for its solution Lecture 4 COMPSCI 220 - AP G Gimel'farb 1 Time complexity growth f(n) Number of data items processed per: 1 minute 1 day 1 year 1 century n 10 14,400 5.26⋅106 5.26⋅108 7 n log10n 10 3,997 883,895 6.72⋅10 n1.5 10 1,275 65,128 1.40⋅106 n2 10 379 7,252 72,522 n3 10 112 807 3,746 2n 10 20 29 35 Lecture 4 COMPSCI 220 - AP G Gimel'farb 2 Beware exponential complexity ☺If a linear O(n) algorithm processes 10 items per minute, then it can process 14,400 items per day, 5,260,000 items per year, and 526,000,000 items per century ☻If an exponential O(2n) algorithm processes 10 items per minute, then it can process only 20 items per day and 35 items per century... Lecture 4 COMPSCI 220 - AP G Gimel'farb 3 Big-Oh vs. Actual Running Time • Example 1: Let algorithms A and B have running times TA(n) = 20n ms and TB(n) = 0.1n log2n ms • In the “Big-Oh”sense, A is better than B… • But: on which data volume can A outperform B? TA(n) < TB(n) if 20n < 0.1n log2n, 200 60 or log2n > 200, that is, when n >2 ≈ 10 ! • Thus, in all practical cases B is better than A… Lecture 4 COMPSCI 220 - AP G Gimel'farb 4 Big-Oh vs. -
A Short History of Computational Complexity
The Computational Complexity Column by Lance FORTNOW NEC Laboratories America 4 Independence Way, Princeton, NJ 08540, USA [email protected] http://www.neci.nj.nec.com/homepages/fortnow/beatcs Every third year the Conference on Computational Complexity is held in Europe and this summer the University of Aarhus (Denmark) will host the meeting July 7-10. More details at the conference web page http://www.computationalcomplexity.org This month we present a historical view of computational complexity written by Steve Homer and myself. This is a preliminary version of a chapter to be included in an upcoming North-Holland Handbook of the History of Mathematical Logic edited by Dirk van Dalen, John Dawson and Aki Kanamori. A Short History of Computational Complexity Lance Fortnow1 Steve Homer2 NEC Research Institute Computer Science Department 4 Independence Way Boston University Princeton, NJ 08540 111 Cummington Street Boston, MA 02215 1 Introduction It all started with a machine. In 1936, Turing developed his theoretical com- putational model. He based his model on how he perceived mathematicians think. As digital computers were developed in the 40's and 50's, the Turing machine proved itself as the right theoretical model for computation. Quickly though we discovered that the basic Turing machine model fails to account for the amount of time or memory needed by a computer, a critical issue today but even more so in those early days of computing. The key idea to measure time and space as a function of the length of the input came in the early 1960's by Hartmanis and Stearns. -
Series Solutions of Ordinary Differential Equations
Series Solutions of Homogeneous, Linear, 2nd Order ODE “Standard form” of a homogeneous, linear, 2nd order ODE: y′′ + p( z) y′ + q( z) y = 0 The first step is always to put the given equation into this “standard form.” Then the technique for obtaining two independent solutions depends on the existence and nature of any singularities of the ODE at the point z = z0 about which the series is to be expanded. By a change of variable, the ODE can always be written so that z0 = 0 and this is assumed below. Case I: z = 0 is an ordinary point: (1) Assume a power series solution about z = 0: ∞ n y() z= ∑ an z . Eq. (1) n=0 (2) Substitute Eq. (1) and its derivatives into the ODE and require that the coefficients of each power of z sum to zero to get a recurrence relation. The recurrence relation expresses a coefficient an in terms of the coefficients ar where r ≤ n − 1. (3) Sometimes the recurrence relation will have two solutions which can be used to construct series for two independent solutions to the ODE, y1(z) and y2(z). Other times, independent solutions can be obtained by choosing differing starting points for the series, e.g. a0 = 1, a1 =0 or a0 = 0, a1 = 1. A systematic approach is to assume Frobenius power series solutions ∞ σ n y() z= z∑ an z Eq. (2) n=0 with σ = 0 and σ = 1 instead of using only Eq. (1). (4) Try to relate the power series to the closed form of an elementary function (not always possible). -
The Fractional Derivative of the Dirac Delta Function and New Results on the Inverse Laplace Transform of Irrational Functions
The fractional derivative of the Dirac delta function and new results on the inverse Laplace transform of irrational functions Nicos Makris1 Abstract Motivated from studies on anomalous diffusion, we show that the memory function M(t) of q + complex materials, that their creep compliance follows a power law, J(t) ∼ t with q 2 R , dqδ(t−0) + is the fractional derivative of the Dirac delta function, dtq with q 2 R . This leads q + to the finding that the inverse Laplace transform of s for any q 2 R is the fractional dqδ(t−0) derivative of the Dirac delta function, dtq . This result, in association with the con- sq volution theorem, makes possible the calculation of the inverse Laplace transform of sα∓λ + where α < q 2 R which is the fractional derivative of order q of the Rabotnov function α−1 α + "α−1(±λ, t) = t Eα, α(±λt ). The fractional derivative of order q 2 R of the Rabotnov function, "α−1(±λ, t) produces singularities which are extracted with a finite number of frac- tional derivatives of the Dirac delta function depending on the strength of q in association with the recurrence formula of the two-parameter Mittag–Leffler function. arXiv:2006.04966v1 [math-ph] 8 Jun 2020 Keywords: Generalized functions, Laplace transform, anomalous diffusion, fractional calculus, Mittag–Leffler function 1Department of Civil and Environmental Engineering, Southern Methodist University, Dallas, Texas, 75276 [email protected] Office of Theoretical and Applied Mechanics, Academy of Athens, 10679, Greece 1 1 Introduction 1 The classical result for the inverse Laplace transform of the function F(s) = sq is (Erdélyi 1954) 1 1 L−1 = tq−1 with q > 0 (1) sq Γ(q) 1 In Eq. -
Sorting Algorithm 1 Sorting Algorithm
Sorting algorithm 1 Sorting algorithm In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most-used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the use of other algorithms (such as search and merge algorithms) that require sorted lists to work correctly; it is also often useful for canonicalizing data and for producing human-readable output. More formally, the output must satisfy two conditions: 1. The output is in nondecreasing order (each element is no smaller than the previous element according to the desired total order); 2. The output is a permutation, or reordering, of the input. Since the dawn of computing, the sorting problem has attracted a great deal of research, perhaps due to the complexity of solving it efficiently despite its simple, familiar statement. For example, bubble sort was analyzed as early as 1956.[1] Although many consider it a solved problem, useful new sorting algorithms are still being invented (for example, library sort was first published in 2004). Sorting algorithms are prevalent in introductory computer science classes, where the abundance of algorithms for the problem provides a gentle introduction to a variety of core algorithm concepts, such as big O notation, divide and conquer algorithms, data structures, randomized algorithms, best, worst and average case analysis, time-space tradeoffs, and lower bounds. Classification Sorting algorithms used in computer science are often classified by: • Computational complexity (worst, average and best behaviour) of element comparisons in terms of the size of the list . For typical sorting algorithms good behavior is and bad behavior is .