Big O Notation
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. -
CS321 Spring 2021
CS321 Spring 2021 Lecture 2 Jan 13 2021 Admin • A1 Due next Saturday Jan 23rd – 11:59PM Course in 4 Sections • Section I: Basics and Sorting • Section II: Hash Tables and Basic Data Structs • Section III: Binary Search Trees • Section IV: Graphs Section I • Sorting methods and Data Structures • Introduction to Heaps and Heap Sort What is Big O notation? • A way to approximately count algorithm operations. • A way to describe the worst case running time of algorithms. • A tool to help improve algorithm performance. • Can be used to measure complexity and memory usage. Bounds on Operations • An algorithm takes some number of ops to complete: • a + b is a single operation, takes 1 op. • Adding up N numbers takes N-1 ops. • O(1) means ‘on order of 1’ operation. • O( c ) means ‘on order of constant’. • O( n) means ‘ on order of N steps’. • O( n2) means ‘ on order of N*N steps’. How Does O(k) = O(1) O(n) = c * n for some c where c*n is always greater than n for some c. O( k ) = c*k O( 1 ) = cc * 1 let ccc = c*k c*k = c*k* 1 therefore O( k ) = c * k * 1 = ccc *1 = O(1) O(n) times for sorting algorithms. Technique O(n) operations O(n) memory use Insertion Sort O(N2) O( 1 ) Bubble Sort O(N2) O(1) Merge Sort N * log(N) O(1) Heap Sort N * log(N) O(1) Quicksort O(N2) O(logN) Memory is in terms of EXTRA memory Primary Notation Types • O(n) = Asymptotic upper bound. -
Rate of Growth Linear Vs Logarithmic Growth O() Complexity Measure
Where were we…. Rate of Growth • Comparing worst case performance of algorithms. We don't know how long the steps actually take; we only know it is some constant time. We can • Do it in machine-independent way. just lump all constants together and forget about • Time usage of an algorithm: how many basic them. steps does an algorithm perform, as a function of the input size. What we are left with is the fact that the time in • For example: given an array of length N (=input linear search grows linearly with the input, while size), how many steps does linear search perform? in binary search it grows logarithmically - much slower. Linear vs logarithmic growth O() complexity measure Linear growth: Logarithmic growth: Input size T(N) = c log N Big O notation gives an asymptotic upper bound T(N) = N* c 2 on the actual function which describes 10 10c c log 10 = 4c time/memory usage of the algorithm: logarithmic, 2 linear, quadratic, etc. 100 100c c log2 100 = 7c The complexity of an algorithm is O(f(N)) if there exists a constant factor K and an input size N0 1000 1000c c log2 1000 = 10c such that the actual usage of time/memory by the 10000 10000c c log 10000 = 16c algorithm on inputs greater than N0 is always less 2 than K f(N). Upper bound example In other words f(N)=2N If an algorithm actually makes g(N) steps, t(N)=3+N time (for example g(N) = C1 + C2log2N) there is an input size N' and t(N) is in O(N) because for all N>3, there is a constant K, such that 2N > 3+N for all N > N' , g(N) ≤ K f(N) Here, N0 = 3 and then the algorithm is in O(f(N). -
A Short Course on Approximation Theory
A Short Course on Approximation Theory N. L. Carothers Department of Mathematics and Statistics Bowling Green State University ii Preface These are notes for a topics course offered at Bowling Green State University on a variety of occasions. The course is typically offered during a somewhat abbreviated six week summer session and, consequently, there is a bit less material here than might be associated with a full semester course offered during the academic year. On the other hand, I have tried to make the notes self-contained by adding a number of short appendices and these might well be used to augment the course. The course title, approximation theory, covers a great deal of mathematical territory. In the present context, the focus is primarily on the approximation of real-valued continuous functions by some simpler class of functions, such as algebraic or trigonometric polynomials. Such issues have attracted the attention of thousands of mathematicians for at least two centuries now. We will have occasion to discuss both venerable and contemporary results, whose origins range anywhere from the dawn of time to the day before yesterday. This easily explains my interest in the subject. For me, reading these notes is like leafing through the family photo album: There are old friends, fondly remembered, fresh new faces, not yet familiar, and enough easily recognizable faces to make me feel right at home. The problems we will encounter are easy to state and easy to understand, and yet their solutions should prove intriguing to virtually anyone interested in mathematics. The techniques involved in these solutions entail nearly every topic covered in the standard undergraduate curriculum. -
Ffontiau Cymraeg
This publication is available in other languages and formats on request. Mae'r cyhoeddiad hwn ar gael mewn ieithoedd a fformatau eraill ar gais. [email protected] www.caerphilly.gov.uk/equalities How to type Accented Characters This guidance document has been produced to provide practical help when typing letters or circulars, or when designing posters or flyers so that getting accents on various letters when typing is made easier. The guide should be used alongside the Council’s Guidance on Equalities in Designing and Printing. Please note this is for PCs only and will not work on Macs. Firstly, on your keyboard make sure the Num Lock is switched on, or the codes shown in this document won’t work (this button is found above the numeric keypad on the right of your keyboard). By pressing the ALT key (to the left of the space bar), holding it down and then entering a certain sequence of numbers on the numeric keypad, it's very easy to get almost any accented character you want. For example, to get the letter “ô”, press and hold the ALT key, type in the code 0 2 4 4, then release the ALT key. The number sequences shown from page 3 onwards work in most fonts in order to get an accent over “a, e, i, o, u”, the vowels in the English alphabet. In other languages, for example in French, the letter "c" can be accented and in Spanish, "n" can be accented too. Many other languages have accents on consonants as well as vowels. -
Your Baby Has Hemoglobin E Or Hemoglobin O Trait for Parents
NEW HAMPSHIRE NEWBORN SCREENING PROGRAM Your Baby Has Hemoglobin E or Hemoglobin O Trait For Parents All infants born in New Hampshire are screened for a panel of conditions at birth. A small amount of blood was collected from your baby’s heel and sent to the laboratory for testing. One of the tests looked at the hemoglobin in your baby’s blood. Your baby’s test found that your baby has either hemoglobin E trait or hemoglobin O trait. The newborn screen- ing test cannot tell the difference between hemoglobin E and hemoglobin O so we do not know which one your baby has. Both hemoglobin E trait and hemoglobin O trait are common and do not cause health problems. Hemoglobin E trait and hemoglobin O trait will never develop to disease. What is hemoglobin? Hemoglobin is the part of the blood that carries oxygen to all parts of the body. There are different types of hemoglobin. The type of hemoglobin we have is determined from genes that we inherit from our parents. Genes are the instructions for how our body develops and functions. We have two copies of each gene; one copy is inherited from our mother in the egg and one copy is inherited from our father in the sperm. What are hemoglobin E trait and hemoglobin O trait? The normal, and most common, type of hemoglobin is called hemoglobin A. Hemoglobin E trait is when a baby inherited one gene for hemoglobin A from one parent and one gene for hemoglobin E from the other parent. -
Medical Terminology Abbreviations Medical Terminology Abbreviations
34 MEDICAL TERMINOLOGY ABBREVIATIONS MEDICAL TERMINOLOGY ABBREVIATIONS The following list contains some of the most common abbreviations found in medical records. Please note that in medical terminology, the capitalization of letters bears significance as to the meaning of certain terms, and is often used to distinguish terms with similar acronyms. @—at A & P—anatomy and physiology ab—abortion abd—abdominal ABG—arterial blood gas a.c.—before meals ac & cl—acetest and clinitest ACLS—advanced cardiac life support AD—right ear ADL—activities of daily living ad lib—as desired adm—admission afeb—afebrile, no fever AFB—acid-fast bacillus AKA—above the knee alb—albumin alt dieb—alternate days (every other day) am—morning AMA—against medical advice amal—amalgam amb—ambulate, walk AMI—acute myocardial infarction amt—amount ANS—automatic nervous system ant—anterior AOx3—alert and oriented to person, time, and place Ap—apical AP—apical pulse approx—approximately aq—aqueous ARDS—acute respiratory distress syndrome AS—left ear ASA—aspirin asap (ASAP)—as soon as possible as tol—as tolerated ATD—admission, transfer, discharge AU—both ears Ax—axillary BE—barium enema bid—twice a day bil, bilateral—both sides BK—below knee BKA—below the knee amputation bl—blood bl wk—blood work BLS—basic life support BM—bowel movement BOW—bag of waters B/P—blood pressure bpm—beats per minute BR—bed rest MEDICAL TERMINOLOGY ABBREVIATIONS 35 BRP—bathroom privileges BS—breath sounds BSI—body substance isolation BSO—bilateral salpingo-oophorectomy BUN—blood, urea, nitrogen -
Comparing the Heuristic Running Times And
Comparing the heuristic running times and time complexities of integer factorization algorithms Computational Number Theory ! ! ! New Mexico Supercomputing Challenge April 1, 2015 Final Report ! Team 14 Centennial High School ! ! Team Members ! Devon Miller Vincent Huber ! Teacher ! Melody Hagaman ! Mentor ! Christopher Morrison ! ! ! ! ! ! ! ! ! "1 !1 Executive Summary....................................................................................................................3 2 Introduction.................................................................................................................................3 2.1 Motivation......................................................................................................................3 2.2 Public Key Cryptography and RSA Encryption............................................................4 2.3 Integer Factorization......................................................................................................5 ! 2.4 Big-O and L Notation....................................................................................................6 3 Mathematical Procedure............................................................................................................6 3.1 Mathematical Description..............................................................................................6 3.1.1 Dixon’s Algorithm..........................................................................................7 3.1.2 Fermat’s Factorization Method.......................................................................7 -
February 2009
How Euler Did It by Ed Sandifer Estimating π February 2009 On Friday, June 7, 1779, Leonhard Euler sent a paper [E705] to the regular twice-weekly meeting of the St. Petersburg Academy. Euler, blind and disillusioned with the corruption of Domaschneff, the President of the Academy, seldom attended the meetings himself, so he sent one of his assistants, Nicolas Fuss, to read the paper to the ten members of the Academy who attended the meeting. The paper bore the cumbersome title "Investigatio quarundam serierum quae ad rationem peripheriae circuli ad diametrum vero proxime definiendam maxime sunt accommodatae" (Investigation of certain series which are designed to approximate the true ratio of the circumference of a circle to its diameter very closely." Up to this point, Euler had shown relatively little interest in the value of π, though he had standardized its notation, using the symbol π to denote the ratio of a circumference to a diameter consistently since 1736, and he found π in a great many places outside circles. In a paper he wrote in 1737, [E74] Euler surveyed the history of calculating the value of π. He mentioned Archimedes, Machin, de Lagny, Leibniz and Sharp. The main result in E74 was to discover a number of arctangent identities along the lines of ! 1 1 1 = 4 arctan " arctan + arctan 4 5 70 99 and to propose using the Taylor series expansion for the arctangent function, which converges fairly rapidly for small values, to approximate π. Euler also spent some time in that paper finding ways to approximate the logarithms of trigonometric functions, important at the time in navigation tables. -
Approximation Atkinson Chapter 4, Dahlquist & Bjork Section 4.5
Approximation Atkinson Chapter 4, Dahlquist & Bjork Section 4.5, Trefethen's book Topics marked with ∗ are not on the exam 1 In approximation theory we want to find a function p(x) that is `close' to another function f(x). We can define closeness using any metric or norm, e.g. Z 2 2 kf(x) − p(x)k2 = (f(x) − p(x)) dx or kf(x) − p(x)k1 = sup jf(x) − p(x)j or Z kf(x) − p(x)k1 = jf(x) − p(x)jdx: In order for these norms to make sense we need to restrict the functions f and p to suitable function spaces. The polynomial approximation problem takes the form: Find a polynomial of degree at most n that minimizes the norm of the error. Naturally we will consider (i) whether a solution exists and is unique, (ii) whether the approximation converges as n ! 1. In our section on approximation (loosely following Atkinson, Chapter 4), we will first focus on approximation in the infinity norm, then in the 2 norm and related norms. 2 Existence for optimal polynomial approximation. Theorem (no reference): For every n ≥ 0 and f 2 C([a; b]) there is a polynomial of degree ≤ n that minimizes kf(x) − p(x)k where k · k is some norm on C([a; b]). Proof: To show that a minimum/minimizer exists, we want to find some compact subset of the set of polynomials of degree ≤ n (which is a finite-dimensional space) and show that the inf over this subset is less than the inf over everything else. -
Big-O Notation
The Growth of Functions and Big-O Notation Introduction Note: \big-O" notation is a generic term that includes the symbols O, Ω, Θ, o, !. Big-O notation allows us to describe the aymptotic growth of a function f(n) without concern for i) constant multiplicative factors, and ii) lower-order additive terms. By asymptotic growth we mean the growth of the function as input variable n gets arbitrarily large. As an example, consider the following code. int sum = 0; for(i=0; i < n; i++) for(j=0; j < n; j++) sum += (i+j)/6; How much CPU time T (n) is required to execute this code as a function of program variable n? Of course, the answer will depend on factors that may be beyond our control and understanding, including the language compiler being used, the hardware of the computer executing the program, the computer's operating system, and the nature and quantity of other programs being run on the computer. However, we can say that the outer for loop iterates n times and, for each of those iterations, the inner loop will also iterate n times for a total of n2 iterations. Moreover, for each iteration will require approximately a constant number c of clock cycles to execture, where the number of clock cycles varies with each system. So rather than say \T (n) is approximately cn2 nanoseconds, for some constant c that will vary from person to person", we instead use big-O notation and write T (n) = Θ(n2) nanoseconds. This conveys that the elapsed CPU time will grow quadratically with respect to the program variable n.