Lecture Notes 6 Introduction to algorithm analysis CSS 501 Data Structures and Object-Oriented Programming
|
|
- Janice Williamson
- 5 years ago
- Views:
Transcription
1 Lecture Notes 6 Itroductio to algorithm aalysis CSS 501 Data Structures ad Object-Orieted Programmig Readig for this lecture: Carrao, Chapter 10 To be covered i this lecture: Itroductio to algorithm aalysis Growth rates Big-O otatio Aalysis of search algorithms Itroductio to algorithm aalysis This lecture we are goig to start discussig the efficiecy of algorithms. This is a importat topic that we will retur to every time that we talk about a ew algorithm. Uderstadig the efficiecy of a algorithm is importat. The speed ad/or resposiveess of a wide-variety of applicatios deped o the efficiecy of the algorithm used i the applicatio. Efficiet algorithms are much more importat tha codig tricks ad optimizatio. Examples of applicatios that rely o efficiet algorithms iclude computer games, productivity software (such as word processig ad spreadsheets), systems you ecouter everyday (such as ATMs ad grocery checkout systems), critical applicatios (life support, air-traffic cotrol), ad Mars rovers. This lecture will be largely theoretical. The techiques that we will talk about form the basis for aalysis that we will perform over ad over agai i this course ad that you will use i future courses. They will allow you to compare algorithms for some problem ad determie which is more efficiet (primarily i terms of the computatio time, but similar techiques ca be applied also to the amout of memory required). This lecture will cocetrate o simple algorithms that you have probably see before, but we will apply the techiques to more advaced algorithms i subsequet lectures. For the most part, we have (so far) cosidered the huma cost of algorithms (readability, modularity, etc.) This impacts how easy it is to geerate, modify, test, ad support programs, rather tha speed or resposiveess for the user. Of course, efficiecy is also importat. You should always cosider the efficiecy whe selectig a particular algorithm to solve a problem. We will discuss the efficiecy of algorithms, rather tha programs. Two differet implemetatios of the same algorithm usually vary little i speed. Clever tricks may gai you a little speed, but the big picture (that is, the efficiecy of the algorithm) is far more importat. We examie the aalysis of algorithms abstractly for aother reaso. If we compare two programs to determie which is faster, the result depeds o which program was coded better, which computer was used to test the programs, ad what data was used for the test. Lookig at the overall efficiecy of a algorithm overcomes these problems. Reasos to aalyze the efficiecy of a algorithm: Aalysis helps choose which solutio to use to solve a particular problem. Experimetatio tells us about oe test case, while aalysis ca tell us about all test cases (performace guaratees). Performace ca be predicted before programmig. If you wait util you ve coded a large project ad the discover that it rus slowly, much time has bee wasted. If you ca tell which parts of your solutio execute quickly ad which parts execute slowly, the you kow which to work o to improve the overall solutio. Growth rates We wat to aalyze the ruig time without kowig the details of the iput. This is doe by measurig the ruig time as a fuctio of the size of the problem (for example, the value of a iteger iput, the umber of elemets i a array, or the umber of odes i a liked list). The size is usually called, although ay variable ca be used to deote this size.
2 Let s say we have 3 algorithms to solve some problem. Oe takes time proportioal to 100, oe takes time proportioal to 10^2, ad oe takes time proportioal to 2^. These are the growth rates for the algorithms i terms of the size of the problem. Let s examie how log these algorithms take for various problem sizes, assumig that times are all i millisecods. Alg. 1 Alg. 2 Alg. 3 = = = ,048,576 = , x 10^15 (over 36,000 years) = ,000 10,000,000 > 10^300 Algorithm 3 is the fastest for a very small problem, but all of the algorithms are doe i uder a secod. For a slightly larger problem, they are all about the same. As the size of the problem gets bigger, algorithm 3 becomes completely ureasoable ad algorithm 1 looks better ad better. Usually, it is the performace of algorithms for large problems that we are cocered about, sice small problem ca be solved quickly usig most algorithms. The rate of growth is the primary measuremet we will use to aalyze efficiecy. Clearly, the rate of growth is the largest for algorithm 3 ad lowest for algorithm 1. Algorithm 1 is the best to use if you do t kow the size of the problem i advace. We will examie growth rates usig Big-O otatio. Big-O otatio Iformally, if the time required by a algorithm is proportioal to some fuctio f(), the the algorithm s ruig time is said to be O(f()), where f() is the growth-rate fuctio. This is called Big-O otatio due to the O (short for order) at the begiig of the otatio. Sice the ruig time of algorithm 2 is proportioal to ^2, its ruig time is O(^2). O() is usually spoke as big-oh of or simply oh of. Formal defiitio: A fuctio (such as a algorithm s growth rate) f() is O(g()), if there are costats k ad 0 such that f() <= k*g() for all >= 0. Example 1: Algorithm 1 required 100 millisecods to ru. I this case, f() = 100 (we will igore whatever uits are used i the measuremet). Is the ruig time O()? Yes. If we choose k to be 100, the f() <= 100 for all > 0. (Is the ruig time of the algorithm O(^2)? O(log )?) Example 2: Let s say a algorithm requires time 20^ Is this O()? No. 20^ grows faster tha. No matter what costat you use, there is a for which 20^ is bigger tha k*. Is this O(^2)? Yes. If we choose k to be 21 the 20^2+100 is always less tha 21^2 for > 10. Why did I choose those costats? I wated to prove that 20^ <= k^2. Oe methodology is to choose a reasoable value of k (we ca see it eeds to be greater tha 20 here) ad solve for (if possible). With k = 21, we get 100 <= ^2 ad this is true for >=10. What Big-O otatio idicates is that, for a sufficietly large problem ( > 0 ), the growth rate is proportioal to (or less tha) the g() i O(g()). Note that, accordig to the defiitio f() = 1 is O(^25), sice it is always less tha or equal to ^25 for >= 1. This does t tell us much. For this reaso, we always choose the fuctio g() to be as small as we ca ad still be true. Ca a fuctio be O(1)? Yes, if the size of the fuctio ca be bouded, o matter what is. A example is f() = No matter how large is, this fuctio ca ever get larger tha 10. Therefore, we ca choose k = 10 ad 0 = 0. With these values f() <= k * 1 for all > 0.
3 Rules for simplifyig Big-O otatio: Igore lower order terms: f(x) = x^ x is O(x^2). Note also that it does t matter what variable you use. It is customary to use, but ay variable ca be used. Igore multiplicative costats: f() = 42 is O(). O(f()) + O(g()) = O(f() + g()): If your fuctio has two parts ad the first has complexity f() = 10 ad the secod has complexity g() = ^2. The the total complexity is O(10 + ^2), which is O(^2). O(f()) * O(g()) = O(f() * g()): If your fuctio repeats the ier loop x times ad the ier loop takes time x + 5, the the total complexity is O(x * (x + 5)) = O(x^2). Examples: ^ is: O(^3) ¼ ^ log is: O(^2) 5 + 2^ / 5 is: O(2^) For algorithms, the complexity of the algorithm refers to the rate of growth, so it commo to say that the complexity of a algorithm is O(somethig). The smallest possible complexity for algorithms is O(1), sice at least some costat amout of time must be spet o matter what. The hierarchy of complexities is: O(1): Essetially costat. The complexity ca be bouded, o matter how big is. Example: addig 10 to a iteger, accessig oe array elemet. O(log ): Logarithmic growth. This complexity grows very slowly. The base does t matter. Example: biary search of a sorted list. O(): Liear growth. Example: traversig a liked list with odes, or sequetial search of a array. O( log ): Slightly worse tha liear. Usually occurs whe you break a problem dow ito two problems of half the size that must both be solved. Example: Merge sort. O(^2): Quadratic growth. Grows with the square of the problem size. Ofte two ested loops. Example: Isertio sort. O(^3): Cubic growth. Worse tha quadratic. Ofte three ested loops. Example: Matrix multiplicatio (straightforward approach). O(2^): Expoetial growth. Usually too slow for large problems. Example: The towers of Haoi. O(1) < O(log ) < O() < O( log ) < O(^2) < O(^3) < O(2^) Note that these are ot the oly possible complexities, but they are the most commo. Before we start lookig at particular algorithms, I wat to ote that, while Big-O complexity is very importat, it does ot tell the whole story. As we ca see from the above rules, Big-O hides the costat of proportioality ad lower order terms So, algorithms with the same complexity ca vary by a arbitrary costat factor (the lower order terms are usually less importat for large problems). If some algorithm has a extremely large costat multiplier, it may still be impractical, eve if the complexity is low. If a fuctio f() is O(g()), this says that f() grows o faster tha g() after hidig costats for large eough values of. It does t say that f() grows as fast as g(). There is a differet otatio f() = Ω(g()) (proouced Omega of g of ) that says f() grows at least as fast as g() for large eough values of (ad after hidig costats). If f() is both O(g()) ad Ω(g()), the it is said to be (g()) (theta of g of ).
4 Aalysis of search algorithms Now, we are goig to aalyze the complexity of two search algorithms: sequetial search ad biary search. We will determie the efficiecy of the algorithms i terms of the umber of items i the list that is beig searched. Whe the ruig time depeds o the data that is give to the algorithm, there are several ways we ca aalyze the ruig time of the algorithm. Best case: The smallest umber of comparisos that ca be achieved with ay iput. This ca be iterestig, but it is ot very useful, i geeral. Worst case: The largest umber of comparisos that ca be achieved with ay iput. This ca be very importat if we wat to guaratee that the algorithm will fiish withi some time. Average case: The average umber of comparisos that are performed. This is usually the most importat case to aalyze, but it is usually the most difficult to determie. If the algorithms performace does ot deped o the data (summig a array, outputtig a liked list), the all of these will be the same. However, the performace of may algorithms depeds o the data give to the algorithm. Oe example is searchig a list. If the item is at the begiig of the list, we fid it right away usig sequetial search. If the item is t i the list, the we have to examie the etire list. Let s cosider the followig sequetial search code. This is a iterative versio of the algorithm we saw previously. // Fid the positio of a item i a list. Returs 1 if the item is ot i the list. template <typeame Comparable> it sequetialsearch(cost vector<comparable> &alist, cost Comparable &item) { for (it i = 0; i < alist.size(); i++) if (item == alist[i]) retur i; retur -1; } We ca measure the complexity of the search i terms of the umber of comparisos made, sice there is a costat amout of other work performed per compariso. We will assume that the comparisos ca be performed i O(1) time, although this is t ecessarily true, i geeral. I the best case, sequetial search fids the item o the first try. I the worst case, sequetial search examies each item i the list ad, thus, iteratios ad comparisos are performed. Therefore, the complexity is O(). The average case is the positio of item i the list (assumig that it is i the list). If item is i the list, let s assume that each positio i the list is equally likely. That is: P[i] = 1/. Assumig item is i the list, the average umber of comparisos is foud by summig the probability of beig at each positio with the umber of comparisos required for each positio: 1 C() = P[ i] i = i i1 i1 1 = i i 1 = 1 ( 1) 2 = ( 1) 2 = O(). If item is t i the list, the the umber of comparisos is always, which is also O(). Say the probability of a item beig i the list is p, the, overall, the average umber of iteratios of the loop is: ( 1) p( 1) p (1 p) 2 2 This is also O(). Note that the complexity does t deped o whether the list is sorted or ot.
5 If the list is sorted, we ca use biary search, as we saw last lecture. // Biary search usig recursio. // Precoditio: the list must be sorted ito ascedig order. template <typeame Comparable> it biarysearch(cost vector<comparable> &list, cost Comparable &item, it first, it last) { if (first > last) retur 1; it mid = (first + last) / 2; if (item == list[mid]) retur mid; if (item < list[mid]) retur biarysearch(list, item, first, mid - 1); else retur biarysearch(list, item, mid + 1, last); } Example: alist = item = 5 I geeral, how log does the fuctio take? Each iteratio of the while loop requires a costat amout of time - O(1) assumig that the compariso ca be performed i costat time. This meas we ca measure the complexity of the fuctio by coutig the umber of iteratios through the loop. I the best case, we fid it o the first try. The average case is a little tricky for this fuctio ad we wo t compute it i this class, but we ca compute the worst case. We ca defie the umber of iteratios ecessary i the worst case usig a recurrece relatio: F(1) = 1 F() 1 + F(/2) F(/4) k + F(/2 k ) The process eds whe /2 k is less tha or equal to 1 ad we ca use the base case F(1): F() 1 + log 2 = O(log ) Usually, whe you ca break the problem i half ad the fid the solutio by solvig oly oe half of the origial problem, the complexity of the algorithm will be O(log ). If you have to solve both halves of the problem, this is ot true, as we will see whe we discuss sortig. It turs out that whe is large, the average case is early the same as the worst case, although it is slightly lower. How much better is biary search tha sequetial search? For a 1 millio word dictioary, sequetial search does 500,000.5 comparisos o average (if the word is i the dictioary). For the same dictioary, biary search does 21 comparisos i the worst case. Note, however, that you must have a sorted list to use biary search. Iterestigly, the average case performace of biary search ca be improved usig iterpolatio search. The idea is that you do t start lookig i the middle of the list. You predict where the item should be usig iterpolatio. For example, Hak Aaro would be expected to be ear the start of the phoe book. It turs out that the worst-case performace of this algorithm is O(), but the average case is O(log log ). However, because of the computatio time to perform the iterpolatio, it is usually ot as fast as biary search! The best time to use this algorithm would be whe the list of items to search is larger tha ca fit i memory. Sice accessig the disk is expesive (compared to workig i memory), it is ideal to reduce the umber of times the disk eeds to be accessed. Powerpoit for Chapter 10 Practice problems (optioal): Carrao, Chapter 10: #2a,b,e,g,h, #3, #4, #5 #3a,b, e,g,h, #4, #7 Which of the followig fuctios are O( 2 )? (Remember that Big-O otatio provides a upper boud oly.) a d. log 10 b. 3 / 10 e. 4 / (( - 2) ( - 3)) c f. 2 / 2 For the typical algorithms that you use to perform calculatios by had, determie the ruig time i Big-O otatio to:
6 a. Add two N-digit itegers b. Multiply two N-digit itegers c. Divide two N-digit itegers
Algorithm. Counting Sort Analysis of Algorithms
Algorithm Coutig Sort Aalysis of Algorithms Assumptios: records Coutig sort Each record cotais keys ad data All keys are i the rage of 1 to k Space The usorted list is stored i A, the sorted list will
More informationWhat are we going to learn? CSC Data Structures Analysis of Algorithms. Overview. Algorithm, and Inputs
What are we goig to lear? CSC316-003 Data Structures Aalysis of Algorithms Computer Sciece North Carolia State Uiversity Need to say that some algorithms are better tha others Criteria for evaluatio Structure
More informationPseudocode ( 1.1) Analysis of Algorithms. Primitive Operations. Pseudocode Details. Running Time ( 1.1) Estimating performance
Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Pseudocode ( 1.1) High-level descriptio of a algorithm More structured
More informationRunning Time ( 3.1) Analysis of Algorithms. Experimental Studies. Limitations of Experiments
Ruig Time ( 3.1) Aalysis of Algorithms Iput Algorithm Output A algorithm is a step- by- step procedure for solvig a problem i a fiite amout of time. Most algorithms trasform iput objects ito output objects.
More informationAnalysis of Algorithms
Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Ruig Time Most algorithms trasform iput objects ito output objects. The
More informationData Structures and Algorithms. Analysis of Algorithms
Data Structures ad Algorithms Aalysis of Algorithms Outlie Ruig time Pseudo-code Big-oh otatio Big-theta otatio Big-omega otatio Asymptotic algorithm aalysis Aalysis of Algorithms Iput Algorithm Output
More informationRunning Time. Analysis of Algorithms. Experimental Studies. Limitations of Experiments
Ruig Time Aalysis of Algorithms Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite amout of time. Most algorithms trasform iput objects ito output objects. The
More informationHow do we evaluate algorithms?
F2 Readig referece: chapter 2 + slides Algorithm complexity Big O ad big Ω To calculate ruig time Aalysis of recursive Algorithms Next time: Litterature: slides mostly The first Algorithm desig methods:
More informationA graphical view of big-o notation. c*g(n) f(n) f(n) = O(g(n))
ca see that time required to search/sort grows with size of We How do space/time eeds of program grow with iput size? iput. time: cout umber of operatios as fuctio of iput Executio size operatio Assigmet:
More informationAnalysis of Algorithms
Aalysis of Algorithms Ruig Time of a algorithm Ruig Time Upper Bouds Lower Bouds Examples Mathematical facts Iput Algorithm Output A algorithm is a step-by-step procedure for solvig a problem i a fiite
More informationLecture 5. Counting Sort / Radix Sort
Lecture 5. Coutig Sort / Radix Sort T. H. Corme, C. E. Leiserso ad R. L. Rivest Itroductio to Algorithms, 3rd Editio, MIT Press, 2009 Sugkyukwa Uiversity Hyuseug Choo choo@skku.edu Copyright 2000-2018
More informationOutline and Reading. Analysis of Algorithms. Running Time. Experimental Studies. Limitations of Experiments. Theoretical Analysis
Outlie ad Readig Aalysis of Algorithms Iput Algorithm Output Ruig time ( 3.) Pseudo-code ( 3.2) Coutig primitive operatios ( 3.3-3.) Asymptotic otatio ( 3.6) Asymptotic aalysis ( 3.7) Case study Aalysis
More informationLecture 1: Introduction and Strassen s Algorithm
5-750: Graduate Algorithms Jauary 7, 08 Lecture : Itroductio ad Strasse s Algorithm Lecturer: Gary Miller Scribe: Robert Parker Itroductio Machie models I this class, we will primarily use the Radom Access
More informationAnalysis Metrics. Intro to Algorithm Analysis. Slides. 12. Alg Analysis. 12. Alg Analysis
Itro to Algorithm Aalysis Aalysis Metrics Slides. Table of Cotets. Aalysis Metrics 3. Exact Aalysis Rules 4. Simple Summatio 5. Summatio Formulas 6. Order of Magitude 7. Big-O otatio 8. Big-O Theorems
More informationCIS 121 Data Structures and Algorithms with Java Fall Big-Oh Notation Tuesday, September 5 (Make-up Friday, September 8)
CIS 11 Data Structures ad Algorithms with Java Fall 017 Big-Oh Notatio Tuesday, September 5 (Make-up Friday, September 8) Learig Goals Review Big-Oh ad lear big/small omega/theta otatios Practice solvig
More informationCSE 417: Algorithms and Computational Complexity
Time CSE 47: Algorithms ad Computatioal Readig assigmet Read Chapter of The ALGORITHM Desig Maual Aalysis & Sortig Autum 00 Paul Beame aalysis Problem size Worst-case complexity: max # steps algorithm
More informationCSC165H1 Worksheet: Tutorial 8 Algorithm analysis (SOLUTIONS)
CSC165H1, Witer 018 Learig Objectives By the ed of this worksheet, you will: Aalyse the ruig time of fuctios cotaiig ested loops. 1. Nested loop variatios. Each of the followig fuctios takes as iput a
More informationAnalysis of Algorithms
Presetatio for use with the textbook, Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 2015 Aalysis of Algorithms Iput 2015 Goodrich ad Tamassia Algorithm Aalysis of Algorithms
More informationHomework 1 Solutions MA 522 Fall 2017
Homework 1 Solutios MA 5 Fall 017 1. Cosider the searchig problem: Iput A sequece of umbers A = [a 1,..., a ] ad a value v. Output A idex i such that v = A[i] or the special value NIL if v does ot appear
More informationBig-O Analysis. Asymptotics
Big-O Aalysis 1 Defiitio: Suppose that f() ad g() are oegative fuctios of. The we say that f() is O(g()) provided that there are costats C > 0 ad N > 0 such that for all > N, f() Cg(). Big-O expresses
More informationBig-O Analysis. Asymptotics
Big-O Aalysis 1 Defiitio: Suppose that f() ad g() are oegative fuctios of. The we say that f() is O(g()) provided that there are costats C > 0 ad N > 0 such that for all > N, f() Cg(). Big-O expresses
More informationExamples and Applications of Binary Search
Toy Gog ITEE Uiersity of Queeslad I the secod lecture last week we studied the biary search algorithm that soles the problem of determiig if a particular alue appears i a sorted list of iteger or ot. We
More informationAlgorithm Efficiency
Algorithm Effiiey Exeutig ime Compariso of algorithms to determie whih oe is better approah implemet algorithms & reord exeutio time Problems with this approah there are may tasks ruig ourretly o a omputer
More informationA Generalized Set Theoretic Approach for Time and Space Complexity Analysis of Algorithms and Functions
Proceedigs of the 10th WSEAS Iteratioal Coferece o APPLIED MATHEMATICS, Dallas, Texas, USA, November 1-3, 2006 316 A Geeralized Set Theoretic Approach for Time ad Space Complexity Aalysis of Algorithms
More informationUNIT 4C Iteration: Scalability & Big O. Efficiency
UNIT 4C Iteratio: Scalability & Big O 1 Efficiecy A computer program should be totally correct, but it should also execute as quickly as possible (time-efficiecy) use memory wisely (storage-efficiecy)
More informationCIS 121 Data Structures and Algorithms with Java Spring Stacks, Queues, and Heaps Monday, February 18 / Tuesday, February 19
CIS Data Structures ad Algorithms with Java Sprig 09 Stacks, Queues, ad Heaps Moday, February 8 / Tuesday, February 9 Stacks ad Queues Recall the stack ad queue ADTs (abstract data types from lecture.
More informationCSE 2320 Notes 8: Sorting. (Last updated 10/3/18 7:16 PM) Idea: Take an unsorted (sub)array and partition into two subarrays such that.
CSE Notes 8: Sortig (Last updated //8 7:6 PM) CLRS 7.-7., 9., 8.-8. 8.A. QUICKSORT Cocepts Idea: Take a usorted (sub)array ad partitio ito two subarrays such that p q r x y z x y y z Pivot Customarily,
More informationECE4050 Data Structures and Algorithms. Lecture 6: Searching
ECE4050 Data Structures ad Algorithms Lecture 6: Searchig 1 Search Give: Distict keys k 1, k 2,, k ad collectio L of records of the form (k 1, I 1 ), (k 2, I 2 ),, (k, I ) where I j is the iformatio associated
More information2. ALGORITHM ANALYSIS
2. ALGORITHM ANALYSIS computatioal tractability survey of commo ruig times 2. ALGORITHM ANALYSIS computatioal tractability survey of commo ruig times Lecture slides by Kevi Waye Copyright 2005 Pearso-Addiso
More informationAlgorithms Chapter 3 Growth of Functions
Algorithms Chapter 3 Growth of Fuctios Istructor: Chig Chi Li 林清池助理教授 chigchi.li@gmail.com Departmet of Computer Sciece ad Egieerig Natioal Taiwa Ocea Uiversity Outlie Asymptotic otatio Stadard otatios
More informationMajor CSL Write your name and entry no on every sheet of the answer script. Time 2 Hrs Max Marks 70
NOTE:. Attempt all seve questios. Major CSL 02 2. Write your ame ad etry o o every sheet of the aswer script. Time 2 Hrs Max Marks 70 Q No Q Q 2 Q 3 Q 4 Q 5 Q 6 Q 7 Total MM 6 2 4 0 8 4 6 70 Q. Write a
More informationRecursion. Recursion. Mathematical induction: example. Recursion. The sum of the first n odd numbers is n 2 : Informal proof: Principle:
Recursio Recursio Jordi Cortadella Departmet of Computer Sciece Priciple: Reduce a complex problem ito a simpler istace of the same problem Recursio Itroductio to Programmig Dept. CS, UPC 2 Mathematical
More information6.854J / J Advanced Algorithms Fall 2008
MIT OpeCourseWare http://ocw.mit.edu 6.854J / 18.415J Advaced Algorithms Fall 2008 For iformatio about citig these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 18.415/6.854 Advaced Algorithms
More informationBasic allocator mechanisms The course that gives CMU its Zip! Memory Management II: Dynamic Storage Allocation Mar 6, 2000.
5-23 The course that gives CM its Zip Memory Maagemet II: Dyamic Storage Allocatio Mar 6, 2000 Topics Segregated lists Buddy system Garbage collectio Mark ad Sweep Copyig eferece coutig Basic allocator
More informationSolution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Spring, Instructions:
CS 604 Data Structures Midterm Sprig, 00 VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Istructios: Prit your ame i the space provided below. This examiatio is closed book ad closed
More informationMorgan Kaufmann Publishers 26 February, COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 5
Morga Kaufma Publishers 26 February, 28 COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Chapter 5 Set-Associative Cache Architecture Performace Summary Whe CPU performace icreases:
More informationChapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 1 Itroductio to Computers ad C++ Programmig Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 1.1 Computer Systems 1.2 Programmig ad Problem Solvig 1.3 Itroductio to C++ 1.4 Testig
More informationCS473-Algorithms I. Lecture 2. Asymptotic Notation. CS 473 Lecture 2 1
CS473-Algorithms I Lecture Asymptotic Notatio CS 473 Lecture 1 O-otatio (upper bouds) f() = O(g()) if positive costats c, 0 such that e.g., = O( 3 ) 0 f() cg(), 0 c 3 c c = 1 & 0 = or c = & 0 = 1 Asymptotic
More informationcondition w i B i S maximum u i
ecture 10 Dyamic Programmig 10.1 Kapsack Problem November 1, 2004 ecturer: Kamal Jai Notes: Tobias Holgers We are give a set of items U = {a 1, a 2,..., a }. Each item has a weight w i Z + ad a utility
More informationChapter 24. Sorting. Objectives. 1. To study and analyze time efficiency of various sorting algorithms
Chapter 4 Sortig 1 Objectives 1. o study ad aalyze time efficiecy of various sortig algorithms 4. 4.7.. o desig, implemet, ad aalyze bubble sort 4.. 3. o desig, implemet, ad aalyze merge sort 4.3. 4. o
More informationOnes Assignment Method for Solving Traveling Salesman Problem
Joural of mathematics ad computer sciece 0 (0), 58-65 Oes Assigmet Method for Solvig Travelig Salesma Problem Hadi Basirzadeh Departmet of Mathematics, Shahid Chamra Uiversity, Ahvaz, Ira Article history:
More informationCIS 121 Data Structures and Algorithms with Java Spring Stacks and Queues Monday, February 12 / Tuesday, February 13
CIS Data Structures ad Algorithms with Java Sprig 08 Stacks ad Queues Moday, February / Tuesday, February Learig Goals Durig this lab, you will: Review stacks ad queues. Lear amortized ruig time aalysis
More informationPolynomial Functions and Models. Learning Objectives. Polynomials. P (x) = a n x n + a n 1 x n a 1 x + a 0, a n 0
Polyomial Fuctios ad Models 1 Learig Objectives 1. Idetify polyomial fuctios ad their degree 2. Graph polyomial fuctios usig trasformatios 3. Idetify the real zeros of a polyomial fuctio ad their multiplicity
More informationwhy study sorting? Sorting is a classic subject in computer science. There are three reasons for studying sorting algorithms.
Chapter 5 Sortig IST311 - CIS65/506 Clevelad State Uiversity Prof. Victor Matos Adapted from: Itroductio to Java Programmig: Comprehesive Versio, Eighth Editio by Y. Daiel Liag why study sortig? Sortig
More informationLower Bounds for Sorting
Liear Sortig Topics Covered: Lower Bouds for Sortig Coutig Sort Radix Sort Bucket Sort Lower Bouds for Sortig Compariso vs. o-compariso sortig Decisio tree model Worst case lower boud Compariso Sortig
More informationHeaps. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015
Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 201 Heaps 201 Goodrich ad Tamassia xkcd. http://xkcd.com/83/. Tree. Used with permissio uder
More informationAlgorithm Design Techniques. Divide and conquer Problem
Algorithm Desig Techiques Divide ad coquer Problem Divide ad Coquer Algorithms Divide ad Coquer algorithm desig works o the priciple of dividig the give problem ito smaller sub problems which are similar
More informationLecturers: Sanjam Garg and Prasad Raghavendra Feb 21, Midterm 1 Solutions
U.C. Berkeley CS170 : Algorithms Midterm 1 Solutios Lecturers: Sajam Garg ad Prasad Raghavedra Feb 1, 017 Midterm 1 Solutios 1. (4 poits) For the directed graph below, fid all the strogly coected compoets
More informationA New Morphological 3D Shape Decomposition: Grayscale Interframe Interpolation Method
A ew Morphological 3D Shape Decompositio: Grayscale Iterframe Iterpolatio Method D.. Vizireau Politehica Uiversity Bucharest, Romaia ae@comm.pub.ro R. M. Udrea Politehica Uiversity Bucharest, Romaia mihea@comm.pub.ro
More informationSorting in Linear Time. Data Structures and Algorithms Andrei Bulatov
Sortig i Liear Time Data Structures ad Algorithms Adrei Bulatov Algorithms Sortig i Liear Time 7-2 Compariso Sorts The oly test that all the algorithms we have cosidered so far is compariso The oly iformatio
More information1 Graph Sparsfication
CME 305: Discrete Mathematics ad Algorithms 1 Graph Sparsficatio I this sectio we discuss the approximatio of a graph G(V, E) by a sparse graph H(V, F ) o the same vertex set. I particular, we cosider
More informationGC05: Algorithmic Complexity & Computability
GC05: Algorithmic Complexity & Computability This part of the course deals with assessig the time-demad of algorithmic procedures with the aim, where possible, of fidig efficiet solutios to problems. We
More informationData Structures Week #9. Sorting
Data Structures Week #9 Sortig Outlie Motivatio Types of Sortig Elemetary (O( 2 )) Sortig Techiques Other (O(*log())) Sortig Techiques 21.Aralık.2010 Boraha Tümer, Ph.D. 2 Sortig 21.Aralık.2010 Boraha
More informationExact Minimum Lower Bound Algorithm for Traveling Salesman Problem
Exact Miimum Lower Boud Algorithm for Travelig Salesma Problem Mohamed Eleiche GeoTiba Systems mohamed.eleiche@gmail.com Abstract The miimum-travel-cost algorithm is a dyamic programmig algorithm to compute
More informationThe isoperimetric problem on the hypercube
The isoperimetric problem o the hypercube Prepared by: Steve Butler November 2, 2005 1 The isoperimetric problem We will cosider the -dimesioal hypercube Q Recall that the hypercube Q is a graph whose
More information9.1. Sequences and Series. Sequences. What you should learn. Why you should learn it. Definition of Sequence
_9.qxd // : AM Page Chapter 9 Sequeces, Series, ad Probability 9. Sequeces ad Series What you should lear Use sequece otatio to write the terms of sequeces. Use factorial otatio. Use summatio otatio to
More informationLecture 28: Data Link Layer
Automatic Repeat Request (ARQ) 2. Go ack N ARQ Although the Stop ad Wait ARQ is very simple, you ca easily show that it has very the low efficiecy. The low efficiecy comes from the fact that the trasmittig
More informationCivil Engineering Computation
Civil Egieerig Computatio Fidig Roots of No-Liear Equatios March 14, 1945 World War II The R.A.F. first operatioal use of the Grad Slam bomb, Bielefeld, Germay. Cotets 2 Root basics Excel solver Newto-Raphso
More informationprerequisites: 6.046, 6.041/2, ability to do proofs Randomized algorithms: make random choices during run. Main benefits:
Itro Admiistrivia. Sigup sheet. prerequisites: 6.046, 6.041/2, ability to do proofs homework weekly (first ext week) collaboratio idepedet homeworks gradig requiremet term project books. questio: scribig?
More informationPython Programming: An Introduction to Computer Science
Pytho Programmig: A Itroductio to Computer Sciece Chapter 1 Computers ad Programs 1 Objectives To uderstad the respective roles of hardware ad software i a computig system. To lear what computer scietists
More informationCS 111 Green: Program Design I Lecture 27: Speed (cont.); parting thoughts
CS 111 Gree: Program Desig I Lecture 27: Speed (cot.); partig thoughts By Nascarkig - Ow work, CC BY-SA 4.0, https://commos.wikimedia.org/w/idex.php?curid=38671041 Robert H. Sloa (CS) & Rachel Poretsky
More informationComputational Geometry
Computatioal Geometry Chapter 4 Liear programmig Duality Smallest eclosig disk O the Ageda Liear Programmig Slides courtesy of Craig Gotsma 4. 4. Liear Programmig - Example Defie: (amout amout cosumed
More informationUniversity of Waterloo Department of Electrical and Computer Engineering ECE 250 Algorithms and Data Structures
Uiversity of Waterloo Departmet of Electrical ad Computer Egieerig ECE 250 Algorithms ad Data Structures Midterm Examiatio ( pages) Istructor: Douglas Harder February 7, 2004 7:30-9:00 Name (last, first)
More informationRecursive Procedures. How can you model the relationship between consecutive terms of a sequence?
6. Recursive Procedures I Sectio 6.1, you used fuctio otatio to write a explicit formula to determie the value of ay term i a Sometimes it is easier to calculate oe term i a sequece usig the previous terms.
More informationChapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved.
Chapter 11 Frieds, Overloaded Operators, ad Arrays i Classes Copyright 2014 Pearso Addiso-Wesley. All rights reserved. Overview 11.1 Fried Fuctios 11.2 Overloadig Operators 11.3 Arrays ad Classes 11.4
More information. Written in factored form it is easy to see that the roots are 2, 2, i,
CMPS A Itroductio to Programmig Programmig Assigmet 4 I this assigmet you will write a java program that determies the real roots of a polyomial that lie withi a specified rage. Recall that the roots (or
More informationLecture 18. Optimization in n dimensions
Lecture 8 Optimizatio i dimesios Itroductio We ow cosider the problem of miimizig a sigle scalar fuctio of variables, f x, where x=[ x, x,, x ]T. The D case ca be visualized as fidig the lowest poit of
More informationCOSC 1P03. Ch 7 Recursion. Introduction to Data Structures 8.1
COSC 1P03 Ch 7 Recursio Itroductio to Data Structures 8.1 COSC 1P03 Recursio Recursio I Mathematics factorial Fiboacci umbers defie ifiite set with fiite defiitio I Computer Sciece sytax rules fiite defiitio,
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 18 Strategies for Query Processig Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio DBMS techiques to process a query Scaer idetifies
More informationOrder statistics. Order Statistics. Randomized divide-andconquer. Example. CS Spring 2006
406 CS 5633 -- Sprig 006 Order Statistics Carola We Slides courtesy of Charles Leiserso with small chages by Carola We CS 5633 Aalysis of Algorithms 406 Order statistics Select the ith smallest of elemets
More informationLecture 6. Lecturer: Ronitt Rubinfeld Scribes: Chen Ziv, Eliav Buchnik, Ophir Arie, Jonathan Gradstein
068.670 Subliear Time Algorithms November, 0 Lecture 6 Lecturer: Roitt Rubifeld Scribes: Che Ziv, Eliav Buchik, Ophir Arie, Joatha Gradstei Lesso overview. Usig the oracle reductio framework for approximatig
More information15-859E: Advanced Algorithms CMU, Spring 2015 Lecture #2: Randomized MST and MST Verification January 14, 2015
15-859E: Advaced Algorithms CMU, Sprig 2015 Lecture #2: Radomized MST ad MST Verificatio Jauary 14, 2015 Lecturer: Aupam Gupta Scribe: Yu Zhao 1 Prelimiaries I this lecture we are talkig about two cotets:
More informationCS200: Hash Tables. Prichard Ch CS200 - Hash Tables 1
CS200: Hash Tables Prichard Ch. 13.2 CS200 - Hash Tables 1 Table Implemetatios: average cases Search Add Remove Sorted array-based Usorted array-based Balaced Search Trees O(log ) O() O() O() O(1) O()
More informationChapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 5 Fuctios for All Subtasks Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 5.1 void Fuctios 5.2 Call-By-Referece Parameters 5.3 Usig Procedural Abstractio 5.4 Testig ad Debuggig
More informationOne advantage that SONAR has over any other music-sequencing product I ve worked
*gajedra* D:/Thomso_Learig_Projects/Garrigus_163132/z_productio/z_3B2_3D_files/Garrigus_163132_ch17.3d, 14/11/08/16:26:39, 16:26, page: 647 17 CAL 101 Oe advatage that SONAR has over ay other music-sequecig
More informationThe number n of subintervals times the length h of subintervals gives length of interval (b-a).
Simulator with MadMath Kit: Riema Sums (Teacher s pages) I your kit: 1. GeoGebra file: Ready-to-use projector sized simulator: RiemaSumMM.ggb 2. RiemaSumMM.pdf (this file) ad RiemaSumMMEd.pdf (educator's
More informationBST Sequence of Operations
Splay Trees Problems with BSTs Because the shape of a BST is determied by the order that data is iserted, we ru the risk of trees that are essetially lists 12 21 20 32 24 37 15 40 55 56 77 2 BST Sequece
More informationCSC 220: Computer Organization Unit 11 Basic Computer Organization and Design
College of Computer ad Iformatio Scieces Departmet of Computer Sciece CSC 220: Computer Orgaizatio Uit 11 Basic Computer Orgaizatio ad Desig 1 For the rest of the semester, we ll focus o computer architecture:
More informationMATHEMATICAL METHODS OF ANALYSIS AND EXPERIMENTAL DATA PROCESSING (Or Methods of Curve Fitting)
MATHEMATICAL METHODS OF ANALYSIS AND EXPERIMENTAL DATA PROCESSING (Or Methods of Curve Fittig) I this chapter, we will eamie some methods of aalysis ad data processig; data obtaied as a result of a give
More informationMath Section 2.2 Polynomial Functions
Math 1330 - Sectio. Polyomial Fuctios Our objectives i workig with polyomial fuctios will be, first, to gather iformatio about the graph of the fuctio ad, secod, to use that iformatio to geerate a reasoably
More informationCHAPTER IV: GRAPH THEORY. Section 1: Introduction to Graphs
CHAPTER IV: GRAPH THEORY Sectio : Itroductio to Graphs Sice this class is called Number-Theoretic ad Discrete Structures, it would be a crime to oly focus o umber theory regardless how woderful those topics
More informationNumerical Methods Lecture 6 - Curve Fitting Techniques
Numerical Methods Lecture 6 - Curve Fittig Techiques Topics motivatio iterpolatio liear regressio higher order polyomial form expoetial form Curve fittig - motivatio For root fidig, we used a give fuctio
More informationRecursion. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Review: Method Frames
Uit 4, Part 3 Recursio Computer Sciece S-111 Harvard Uiversity David G. Sulliva, Ph.D. Review: Method Frames Whe you make a method call, the Java rutime sets aside a block of memory kow as the frame of
More informationRedundancy Allocation for Series Parallel Systems with Multiple Constraints and Sensitivity Analysis
IOSR Joural of Egieerig Redudacy Allocatio for Series Parallel Systems with Multiple Costraits ad Sesitivity Aalysis S. V. Suresh Babu, D.Maheswar 2, G. Ragaath 3 Y.Viaya Kumar d G.Sakaraiah e (Mechaical
More informationThe VSS CCD photometry spreadsheet
The VSS CCD photometry spreadsheet Itroductio This Excel spreadsheet has bee developed ad tested by the BAA VSS for aalysig results files produced by the multi-image CCD photometry procedure i AIP4Wi v2.
More informationFast Fourier Transform (FFT) Algorithms
Fast Fourier Trasform FFT Algorithms Relatio to the z-trasform elsewhere, ozero, z x z X x [ ] 2 ~ elsewhere,, ~ e j x X x x π j e z z X X π 2 ~ The DFS X represets evely spaced samples of the z- trasform
More information1.2 Binomial Coefficients and Subsets
1.2. BINOMIAL COEFFICIENTS AND SUBSETS 13 1.2 Biomial Coefficiets ad Subsets 1.2-1 The loop below is part of a program to determie the umber of triagles formed by poits i the plae. for i =1 to for j =
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 19 Query Optimizatio Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio Query optimizatio Coducted by a query optimizer i a DBMS Goal:
More informationArray Applications. Sorting. Want to put the contents of an array in order. Selection Sort Bubble Sort Insertion Sort. Quicksort Quickersort
Sortig Wat to put the cotets of a arra i order Selectio Sort Bubble Sort Isertio Sort Quicksort Quickersort 2 tj Bubble Sort - coceptual Sort a arra of umbers ito ascedig or descedig order Split the list
More informationOCR Statistics 1. Working with data. Section 3: Measures of spread
Notes ad Eamples OCR Statistics 1 Workig with data Sectio 3: Measures of spread Just as there are several differet measures of cetral tedec (averages), there are a variet of statistical measures of spread.
More informationCOMP Parallel Computing. PRAM (1): The PRAM model and complexity measures
COMP 633 - Parallel Computig Lecture 2 August 24, 2017 : The PRAM model ad complexity measures 1 First class summary This course is about parallel computig to achieve high-er performace o idividual problems
More informationAbstract. Chapter 4 Computation. Overview 8/13/18. Bjarne Stroustrup Note:
Chapter 4 Computatio Bjare Stroustrup www.stroustrup.com/programmig Abstract Today, I ll preset the basics of computatio. I particular, we ll discuss expressios, how to iterate over a series of values
More informationCMPT 125 Assignment 2 Solutions
CMPT 25 Assigmet 2 Solutios Questio (20 marks total) a) Let s cosider a iteger array of size 0. (0 marks, each part is 2 marks) it a[0]; I. How would you assig a poiter, called pa, to store the address
More informationarxiv: v2 [cs.ds] 24 Mar 2018
Similar Elemets ad Metric Labelig o Complete Graphs arxiv:1803.08037v [cs.ds] 4 Mar 018 Pedro F. Felzeszwalb Brow Uiversity Providece, RI, USA pff@brow.edu March 8, 018 We cosider a problem that ivolves
More informationHash Tables. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015.
Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 2015 Hash Tables xkcd. http://xkcd.com/221/. Radom Number. Used with permissio uder Creative
More informationIntro to Scientific Computing: Solutions
Itro to Scietific Computig: Solutios Dr. David M. Goulet. How may steps does it take to separate 3 objects ito groups of 4? We start with 5 objects ad apply 3 steps of the algorithm to reduce the pile
More informationCounting Regions in the Plane and More 1
Coutig Regios i the Plae ad More 1 by Zvezdelia Stakova Berkeley Math Circle Itermediate I Group September 016 1. Overarchig Problem Problem 1 Regios i a Circle. The vertices of a polygos are arraged o
More informationCOMP 558 lecture 6 Sept. 27, 2010
Radiometry We have discussed how light travels i straight lies through space. We would like to be able to talk about how bright differet light rays are. Imagie a thi cylidrical tube ad cosider the amout
More informationCounting the Number of Minimum Roman Dominating Functions of a Graph
Coutig the Number of Miimum Roma Domiatig Fuctios of a Graph SHI ZHENG ad KOH KHEE MENG, Natioal Uiversity of Sigapore We provide two algorithms coutig the umber of miimum Roma domiatig fuctios of a graph
More informationComputer Science Foundation Exam. August 12, Computer Science. Section 1A. No Calculators! KEY. Solutions and Grading Criteria.
Computer Sciece Foudatio Exam August, 005 Computer Sciece Sectio A No Calculators! Name: SSN: KEY Solutios ad Gradig Criteria Score: 50 I this sectio of the exam, there are four (4) problems. You must
More information