��������������������������� Algorithm Analysis Part I ���������������������������������������������������������������������������� ��������������������������������������������������������������������������������� ������������������������������������������������������������������������������ Tyler Moore ������������������������������������������������������������������� CSE 3353, SMU, Dallas, TX Lecture 3 how many times do you have to turn the crank? Some slides created by or adapted from Dr. Kevin Wayne. For more information see http://www.cs.princeton.edu/~wayne/kleinberg-tardos. Some slides adapted from Dr. Steven Skiena. For more information see http://www.algorist.com ��������������� 3 2 / 26 ����������� ����������������������� Brute force. For many nontrivial problems, there is a natural brute-force Desirable scaling property. When the input size doubles, the algorithm search algorithm that checks every possible solution. should only slow down by some constant factor �. �Typically takes �� time or worse for inputs of size �. �Unacceptable in practice. Def. An algorithm is poly-time if the above scaling property holds. ������������������������������������������������ ����������������������������������������������������� choose C = 2d �������������������������������������� ����������� ������ 4 ���� ������ ����� ������ ������ ������ ������� ������ ����� ������ 5 3 / 26 4 / 26 ����������������������� ������������������� We say that an algorithm is efficient if has a polynomial running time. Worst case. Running time guarantee for any input of size �. �Generally captures efficiency in practice. �Draconian view, but hard to find effective alternative. Justification. It really works in practice! �In practice, the poly-time algorithms that people develop have low constants and low exponents. �Breaking through the exponential barrier of brute force typically Exceptions. Some exponential-time algorithms are used widely in practice exposes some crucial structure of the problem. because the worst-case instances seem to be rare. Exceptions. Some poly-time algorithms do have high constants and/or exponents, and/or are useless in practice. ��� ������ �� ���������� ���� Q. Which would you prefer ���������vs. �������������� ? ������ ������ ���������� �� �������� �������� ���������� �� ���������� ������������������ �� ������� ���������� ����� ������� ��������������� �������� ����� ������� ��� ������������� �������� ��� �������� ���� ���������� � ������� ������ �� ���������� ����� ��� ����� ��� ���������� �������� �� ���� ����� �� ����� ��� ������ ��� ������������� �������� ������ ��� ������ ��� ������� ���� ������ ������ ��� �������� �� ������� ��� ������ ��� �� ���������� �� ���������� ����� ���� ������ ���� ��� �������� ������� �� �� �� ��� ��������� � ���������� ���� ��������� ��� ��� ������� ���� ����� �� ����� �� ���� � ����� �� ��������� �� ��� ����� � �� ���� � ��� ������� �� ��������� �� � ������ �� ��� ��� ����� ������ ������� ���� ������ ����������� ���� ��� ������ ��� �� ���������� �� ���������� ����� ��� �� ���� ������ ����� ���������� �� ������� ������������� ����������������� 6 ���������� ����������������� 7 5 / 26 ����������������� 6 / 26 �������������� Worst case. Running time guarantee for any input of size �. Ex. Heapsort requires at most ���������� compares to sort � elements. Probabilistic. Expected running time of a randomized algorithm. Ex. The expected number of compares to quicksort � elements is ���������. Amortized. Worst-case running time for any sequence of ��operations. Ex. Starting from an empty stack, any sequence of � push and pop operations takes ���� operations using a resizing array. Average-case. Expected running time for a random input of size �. Ex. The expected number of character compares performed by 3-way radix quicksort on � uniformly random strings is ���������. Also. Smoothed analysis, competitive analysis, ... 8 9 7 / 26 8 / 26 ��������������� ����������������� Upper bounds. ���� is ��������� if there exist constants ����� and ����≥��� Equals sign. ��������� is a set of functions, but computer scientists often write such that ������≤����·��������for all ���≥����. ������������������ instead of ������∈�����������. ��������� Ex. ���������������������. Ex. Consider ������������ and ����������� . ���� choose c = 50, n = 1 ����� is �����. ����� is also �����. ����� is neither �����nor ����������. �We have ��������������������� �Thus, ������������. 0 Typical usage. Insertion makes ����� �� � Domain. The domain of ������is typically the natural numbers ��������������. �Sometimes we restrict to a subset of the natural numbers. compares to sort � elements. Other times we extend to the reals. Nonnegative functions. When using big-Oh notation, we assume that the Alternate definition. ���� is ��������� if lim sup n T (n) < f (n) functions involved are (asymptotically) nonnegative. . Bottom line. OK to abuse notation; not OK to misuse it. 11 12 9 / 26 10 / 26 ������������������ ������������������ Lower bounds. ���� is Ω�������� if there exist constants ����� and ����≥��� Tight bounds. ���� is Θ�������� if there exist constants ������, ������, and ����≥��� such that ������≥����·��������for all ���≥����. such that ���·��������≤��������≤�����·��������for all ���≥����. ���������� ���� Ex. ���������������������. choose c = 32, n ����� is both Ω���� and Ω���. ����� is neither Ω�����nor Ω����������. 0 ���� ��������� =1 Ex. ���������������������. choose c = 32, c ����� is Θ����. ����� is neither Θ��� nor Θ����. 1 �� � 2 ���������� = 50, n0 = 1 �� � Typical usage. Any compare-based sorting algorithm requires Ω��������� compares in the worst case. Typical usage. Mergesort makes Θ��������� compares to sort � elements. Meaningless statement. Any compare-based sorting algorithm requires at least ���������� compares in the worst case. 13 11 / 26 14 12 / 26 Big Oh Examples Big Omega Examples Definition Definition T (n) is O(f (n)) if there exist constants c > 0 and n0 ≥ 0 such that T (n) ≤ c · f (n) for all n ≥ n0 . T (n) is Ω(f (n)) if there exist constants c > 0 and n0 ≥ 0 such that T (n) ≥ c · f (n) for all n ≥ n0 . 1 2 3 3n2 − 100n + 6 = O(n2 )? 3n2 1 Yes, because for c = 3 and no ≥ 1, 3n2 > 3n2 − 100n + 6 − 100n + 6 = O(n3 )? 3 2 2 Yes, because for c = 0.01 and no ≥ 10, 0.01n > 3n − 100n + 6 3n2 − 100n + 6 = O(n)? 3 3n2 − 100n + 6 = Ω(n2 )? 3n2 Yes, because for c = 2 and no ≥ 100, 2n2 < 3n2 − 100n + 6 − 100n + 6 = Ω(n3 )? No, because for c = 3 and no > 3, 3n2 − 100n + 6 < 3n3 3n2 − 100n + 6 = Ω(n)? Yes, because for c = 2 and n0 ≥ 100, 2n < 3n2 − 100n + 6 2 No, because c · n < 3n when n > c 13 / 26 Big Theta Examples 14 / 26 Exercises Definition T (n) is Θ(f (n)) if there exist constants c1 > 0, c2 > 0 and n0 ≥ 0 such that c1 · f (n) ≤ T (n) ≤ c2 · f (n) for all n ≥ n0 . 1 3n2 − 100n + 6 = Θ(n2 )? Yes, because O and Ω apply 2 1 3n + 4n = O(n2 ) 2 2n + 10n = Ω(n3 ) 3 3n2 − 100n + 6 = Θ(n3 )? Pick a suitable c and n0 to show that 3n2 − 4n = Ω(n2 ) No, because only O applies 3 3n2 − 100n + 6 = Θ(n)? No, because only Ω applies 15 / 26 16 / 26 Big Oh Addition/Subtraction Big Oh Multiplication Multiplication by a constant does not change the asymptotics Suppose f (n) = O(n2 ) and g (n) = O(n2 ). What do we know about g � (n) = f (n) + g (n)? � O(c · f (n)) → O(f (n)) Ω(c · f (n)) → Ω(f (n)) Θ(c · f (n)) → Θ(f (n)) 2 Adding bounding constants shows g (n) = O(n ) What do we know about g �� (n) = f (n) − g (n)? But when both functions in a product are increasing, both are important Since bounding constants may not cancel, g �� (n) = O(n2 ) What about lower bounds? Does g � (n) = Ω(n2 ) We know nothing about lower bounds on g � and g �� because we don’t know about the lower bounds on f and g . O(f (n)) · O(g (n)) → O(f (n) · g (n)) Ω(f (n)) · Ω(g (n)) → Ω(f (n) · g (n)) Θ(f (n)) · Θ(g (n)) → Θ(f (n) · g (n)) 17 / 26 18 / 26 Logarithms ��������������������������������������� Upper bounds. ������� is ������������ if there exist constants �����, ����≥���, and ���≥����such that ���������≤����������������for all ���≥���� and ���≥����. Ex. �����������������������������. �������� is both ����������� and ������. �������� is neither ������nor ������. It is important to understand deep in your bones what logarithms are and where they come from. A logarithm is simply an inverse exponential function. Typical usage. Breadth-first search takes �������� time to find the shortest Saying b x = y is equivalent to saying that x = logb y . path from � to � in a digraph. Logarithms reflect how many times we can double something until we get to n, or halve something until we get to 1. 17 20 / 26 Binary Search and Logarithms Logarithms and Binary Trees In binary search we throw away half the possible number of keys after each comparison. Thus twenty comparisons suffice to find any name in the million-name Manhattan phone book! How tall a binary tree do we need until we have n leaves? → The number of potential leaves doubles with each level. How many times can we double 1 until we get to n? Question: how many times can we halve n before getting to 1? 21 / 26 Logarithms and Bits 22 / 26 Logarithms and Multiplication Recall that loga (xy ) = loga (x) + loga (y ) How many bits do you need to represent the numbers from 0 to 2i − 1? This is how people used to multiply before calculators, and remains useful for analysis. What if x = a? 23 / 26 24 / 26 The Base is not Asymptotically Important Federal Sentencing Guidelines F1.1. Fraud and Deceit; Forgery; Offenses Involving Altered or Counterfeit Instruments other than Counterfeit Bearer Obligations of the United States. (a) Base offense Level: 6 (b) Specific offense Characteristics (1) If the loss exceeded $2,000, Recall the definition, c logc x increase the offense level as follows: = x and that logb a = logc a logc b So for a = 2 and c = 100: log2 n = log100 n log100 2 Since log 1 2 = 6.643 is a constant, we can ignore it when calculating 100 Big Oh 25 / 26 Loss(Apply the Greatest) Increase in Level (A) $2,000 or less (B) More than $2,000 (C) More than $5,000 (D) More than $10,000 (E) More than $20,000 (F) More than $40,000 (G) More than $70,000 (H) More than $120,000 (I) More than $200,000 (J) More than $350,000 (K) More than $500,000 (L) More than $800,000 (M) More than $1,500,000 (N) More than $2,500,000 (O) More than $5,000,000 (P) More than $10,000,000 (Q) More than $20,000,000 (R) More than $40,000,000 (Q) More than $80,000,000 no increase add 1 add 2 add 3 add 4 add 5 add 6 add 7 add 8 add 9 add 10 add 11 add 12 add 13 add 14 add 15 add 16 add 17 add 18 The increase in punishment level grows logarithmically in the amount of money stolen. Thus it pays to commit one big crime rather than many small crimes totaling the same amount. In other words, Make the Crime Worth the Time 26 / 26
© Copyright 2026 Paperzz