Why efficiency of algorithm matters? CSC148 Intro. to Computer Science. Comparison of growth of functions. Why efficiency of algorithm matters?
|
|
- Asher Hardy
- 5 years ago
- Views:
Transcription
1 CSC48 Intro. to Computer Science Lecture : Efficiency of Algorithms, Big Oh Why efficiency of algorithm matters? An example of growth of functions: Amir H. Chinaei, Summer 06 Office Hours: R 0- BA4 ahchinaei@cs.toronto.edu Course page: BSTs - Efficiency - Why efficiency of algorithm matters? Another example of growth of functions: When n is arbitrarily big, growth of functions highly depends on the dominant term in the function: n+ n n +n+ n n+ n + n n + log n + n log n n + (log n) + n log n n + n n + n 00 Efficiency - Efficiency -4 Ignore coefficients as well: 0n+ 00n n +n+ 00n n+ n + 0n n log n + 00 n log n n + (log n) + 00 n log n n n 000 n n 00 Notation: 0n+ O(n) 00n O(n) 600n +n+ O(n ) 00n n+ O(n ) n + 0n O(n ) n log n + 00 n log n n + (log n) + 00 n log n n n O( n ) 000 n n 00 O( n ) Efficiency - Efficiency -6
2 Ordering functions by big_o Ordering: 0n+ O(n) 00n O(n) 600n +n+ O(n ) 00n n+ O(n ) n + 0n O(n ) n log n + 00 n log n n + (log n) + 00 n log n n n O( n ) 000 n n 00 O( n ) 4 Ordering functions by their growth Ordering: f (n)= (.) n f (n)= 8n +7n + f (n)= (log n ) f 4 (n)= n f (n)= log (log n) f 6 (n)= n (log n) f 7 (n)= n (n +) f 8 (n)= n + n(log n) f 9 (n)= 0000 f 0 (n)= n! Efficiency -7 Efficiency -8 Time complexity of algorithms How time efficient is an algorithm given input size of n. The worst-case time complexity: an upper bound on the number of operations an algorithm conducts to solve a problem with input size of n. We measure time complexity in the order of number of operations an algorithm uses in its worst-case and will demonstrate it using big_o. ignore implementation details Time complexity: Example def max(list): max = list[0] for i in range(len(list)): if max < list[i]: max = list[i] return max Exact counting: Count the number of comparisons: The max < list[i] comparison is made n times. Each time i is incremented, a test is made to see if i < len(list). One last comparison determines that i len(list). Exactly n + comparisons are made. Consider the dominant term (as well as ignoring the coefficient) Hence, the time complexity of the max algorithm is O(n). Efficiency -9 Efficiency -0 Time complexity: Example def max(list): max = list[0] i= while i< len(list): if max < list[i]: max = list[i] i+= return max Exact counting: Count the number of comparisons: The max < list[i] comparison is made n- times. Each time i is incremented, a test is made to see if i < len(list). One last comparison determines that i len(list). Exactly (n-) + = n - comparisons are made. Consider the dominant term (as well as ignoring the coefficient) Hence, the time complexity of the max algorithm is O(n). Time complexity: Example def silly(n): n = 7 * n**(/) print( very big!') Exact counting of the number of comparisons: Assume there is not any comparisons inside functions print or format Exactly comparisons are made. Hence, the time complexity of the silly algorithm is O(). The number of comparisons in print/format is NOT depending on n Efficiency - Efficiency -
3 Estimating big_o watch loops and functions Instead of calculating the exact number of operations, and then use the dominant term, Let s just focus on the dominant parts of the algorithm in the first place. Dominant parts of algorithms are loops and function calls. Hence, two things to watch:. We need to carefully estimate the number of iterations in the loops in terms of algorithm s input size, i.e. n.. If a called function depends on n (i.e. it has loops that are in terms of n), we should take them into consideration. Efficiency - Efficiency -4 Time complexity: Example (revisited). def max(list):. max = list[0]. for i in range(len(list)): 4. if max < list[i]: max = list[i]. return max Focus on the dominant part of the code (normally loops, also be careful about function calls) The dominant part is the for loop starting at line Line is minor, so is line, line 4, and line None of these lines have a loop or a function call The for loop in line iterates roughly n times Hence, the time complexity of the max algorithm is O(n). Time complexity: Example (revisited). def max(list):. max = list[0]. i= 4. while i< len(list):. if max < list[i]: max = list[i] 6. i+= 7. return max Focus on the dominant part of the code The dominant part is the while loop starting at line 4 This while loop iterates roughly n times Hence, the time complexity of the max algorithm is O(n). Efficiency - Efficiency -6 Time complexity: Example (revisited) def silly(n): n = 7 * n**(/) print( very big!') Focus on the dominant parts (loops and function calls) of the code There is no loop; but there are some function calls The number of operations in print/format is NOT depending on n In other words, these function calls require constant amount of time Hence, the overall time complexity of the silly algorithm is O(). Efficiency -7 Time complexity: Example 4 def silly(n): n = 7 * n** for i in range(n): print( so big! ) Calculate big_o: Efficiency -8
4 Time complexity: Example def silly(n): n = 7 * n** print( so big! ) for i in range(n): Time complexity: Example 6 for i in range(n//): The loop (roughly) iterates ½ n times:. Hence, it is O(n) Calculate big_o: Efficiency -9 Efficiency -0 Time complexity: Example 7 for i in range(n//): for j in range(n**): The outer loop iterates ½ n * n times:. Hence, it is O(n ) Time complexity: Examples 8 for i in range(n//): sum +=i i = for j in range(n**): The loops iterate ½ n + n times:. Hence, it is O(n ) Efficiency - Efficiency - Time complexity: Example 9 result = [] if len(lst)>0: result.append(lst[0]) for i in range(len(lst)-): if lst[i]!= lst[i+]: result.append(lst[i+]) return result Time complexity: Example 0 res = [] for i in lst: if i not in res: res.append(i) it is O(n) Efficiency - Efficiency -4 4
5 Time complexity: Example if n % == 0: for i in range(n*n): sum += for i in range(, n+): sum += i The loops iterate either n or n+- times. Hence, it is O(n ) Time complexity: Example i,, 0 while i < n * n: sum += i i += The loop iterate n times:. Hence, it is O(n ) Efficiency - Efficiency -6 Time complexity: Example i,, 0 while i** < n: j = 0 while j** < n: j += i += The outer loop iterates n ½ * n ½ times:. Hence, it is O(n) Time complexity: Example 4 p, q,, 0, 0 while p** < n: while q** < n: sum += p * q q += p += It s O(n ½ ) Efficiency -7 Efficiency -8 Time complexity: Example Official Course Evaluation def twoness(n): count = 0 while n > : n = n // count = count + return count Please don t forget to do it. Thanks The loop iterate log n times. Hence, it is O(log n) Efficiency -9 Efficiency -0
Introduction to Analysis of Algorithms
Introduction to Analysis of Algorithms Analysis of Algorithms To determine how efficient an algorithm is we compute the amount of time that the algorithm needs to solve a problem. Given two algorithms
More informationCSE 373 Autumn 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Autumn 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationCSc 120. Introduc/on to Computer Programming II. 08: Efficiency and Complexity. Adapted from slides by Dr. Saumya Debray
CSc 120 Introduc/on to Computer Programming II Adapted from slides by Dr. Saumya Debray 08: Efficiency and Complexity EFFICIENCY MATTERS 2 reasoning about performance 3 Reasoning about efficiency Consider
More informationExtended Introduction to Computer Science CS1001.py Lecture 7: Basic Algorithms: Sorting, Merge; Time Complexity and the O( ) notation
Extended Introduction to Computer Science CS1001.py Lecture 7: Basic Algorithms: Sorting, Merge; Time Complexity and the O( ) notation Instructors: Daniel Deutch, Amir Rubinstein Teaching Assistants: Michal
More informationAlgorithm Analysis. Fall 2013 Carola Wenk
Algorithm Analysis Fall 2013 Carola Wenk Computer Program Algorithm Input Computer Output Nearly every modern electronic device can be thought of as a computer that transforms input to the desired output.
More informationChapter 11. Analysis of Algorithms
Chapter 11 Analysis of Algorithms Chapter Scope Efficiency goals The concept of algorithm analysis Big-Oh notation The concept of asymptotic complexity Comparing various growth functions Java Foundations,
More informationCSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 4: Container implementation, Unit Test, Balanced Parentheses, Intro to Linked Lists Amir H. Chinaei, Summer 2016 Office Hours: R 10-12 BA4222 ahchinaei@cs.toronto.edu
More informationAlgorithms and Programming
Algorithms and Programming Lecture 8 Recursion. Computational complexity Camelia Chira Course content Programming in the large Programming in the small Introduction in the software development process
More informationCSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Spring 2010: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationIntroduction to the Analysis of Algorithms. Algorithm
Introduction to the Analysis of Algorithms Based on the notes from David Fernandez-Baca Bryn Mawr College CS206 Intro to Data Structures Algorithm An algorithm is a strategy (well-defined computational
More informationExtended Introduction to Computer Science CS1001.py
Extended Introduction to Computer Science CS00.py Lecture 6: Basic algorithms: Search, Merge and Sort; Time Complexity Instructors: Benny Chor, Amir Rubinstein Teaching Assistants: Michal Kleinbort, Yael
More informationIT 4043 Data Structures and Algorithms
IT 4043 Data Structures and Algorithms Budditha Hettige Department of Computer Science 1 Syllabus Introduction to DSA Abstract Data Types Arrays List Operation Using Arrays Recursion Stacks Queues Link
More informationCSCA48 Winter 2018 Week 10:Algorithm Analysis. Marzieh Ahmadzadeh, Nick Cheng University of Toronto Scarborough
CSCA48 Winter 2018 Week 10:Algorithm Analysis Marzieh Ahmadzadeh, Nick Cheng University of Toronto Scarborough Algorithm Definition: Solving a problem step-by-step in finite amount of time. Analysis: How
More informationIntro. Speed V Growth
Intro Good code is two things. It's elegant, and it's fast. In other words, we got a need for speed. We want to find out what's fast, what's slow, and what we can optimize. First, we'll take a tour of
More informationCSE 373 Winter 2009: Midterm #1 (closed book, closed notes, NO calculators allowed)
Name: Email address: CSE 373 Winter 2009: Midterm #1 (closed book, closed notes, NO calculators allowed) Instructions: Read the directions for each question carefully before answering. We may give partial
More informationCSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 10: BST Recursive Delete, Efficiency of Algorithms Amir H. Chinaei, Summer 2016 Office Hours: R 10-12 BA4222 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/
More informationCS1 Lecture 27 Mar. 26, 2018
CS1 Lecture 27 Mar. 26, 2018 HW6 due Thurs. Q1: think carefully about overlaps draw pictures Q2 ---------------- Ensure legal moves i.e. if user enters an illegal choice, print something appropriate and
More informationAlgorithmic Thinking: Computing with Lists
Algorithmic Thinking: Computing with Lists So Far in Python Data types: int, float, Boolean, string Assignments, function definitions Control structures: For loops, while loops, conditionals Last Lecture
More informationCSC 273 Data Structures
CSC 273 Data Structures Lecture 6 - Faster Sorting Methods Merge Sort Divides an array into halves Sorts the two halves, Then merges them into one sorted array. The algorithm for merge sort is usually
More informationAlgorithm Performance. (the Big-O)
Algorithm Performance (the Big-O) Lecture 6 Today: Worst-case Behaviour Counting Operations Performance Considerations Time measurements Order Notation (the Big-O) Pessimistic Performance Measure Often
More informationData Structures and Algorithms CSE 465
Data Structures and Algorithms CSE 465 LECTURE 2 Analysis of Algorithms Insertion Sort Loop invariants Asymptotic analysis Sofya Raskhodnikova and Adam Smith The problem of sorting Input: sequence a 1,
More informationAnalysis of Algorithms Chapter 11. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013
Analysis of Algorithms Chapter 11 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Analysis of Algorithms: Efficiency goals The concept of algorithm analysis Big-Oh notation The
More informationCMPSCI 187: Programming With Data Structures. Lecture 5: Analysis of Algorithms Overview 16 September 2011
CMPSCI 187: Programming With Data Structures Lecture 5: Analysis of Algorithms Overview 16 September 2011 Analysis of Algorithms Overview What is Analysis of Algorithms? L&C s Dishwashing Example Being
More informationWhy study algorithms? CS 561, Lecture 1. Today s Outline. Why study algorithms? (II)
Why study algorithms? CS 561, Lecture 1 Jared Saia University of New Mexico Seven years of College down the toilet - John Belushi in Animal House Q: Can I get a programming job without knowing something
More informationLecture Notes on Sorting
Lecture Notes on Sorting 15-122: Principles of Imperative Computation Frank Pfenning Lecture 4 September 2, 2010 1 Introduction Algorithms and data structures can be evaluated along a number of dimensions,
More informationAlgorithmic Complexity
Algorithmic Complexity Algorithmic Complexity "Algorithmic Complexity", also called "Running Time" or "Order of Growth", refers to the number of steps a program takes as a function of the size of its inputs.
More informationCOMP 161 Lecture Notes 16 Analyzing Search and Sort
COMP 161 Lecture Notes 16 Analyzing Search and Sort In these notes we analyze search and sort. Counting Operations When we analyze the complexity of procedures we re determine the order of the number of
More informationAnalysis of algorithms
Analysis of algorithms Time and space To analyze an algorithm means: developing a formula for predicting how fast an algorithm is, based on the size of the input (time complexity), and/or developing a
More informationPROGRAM EFFICIENCY & COMPLEXITY ANALYSIS
Lecture 03-04 PROGRAM EFFICIENCY & COMPLEXITY ANALYSIS By: Dr. Zahoor Jan 1 ALGORITHM DEFINITION A finite set of statements that guarantees an optimal solution in finite interval of time 2 GOOD ALGORITHMS?
More information[ 11.2, 11.3, 11.4] Analysis of Algorithms. Complexity of Algorithms. 400 lecture note # Overview
400 lecture note #0 [.2,.3,.4] Analysis of Algorithms Complexity of Algorithms 0. Overview The complexity of an algorithm refers to the amount of time and/or space it requires to execute. The analysis
More informationMeasuring the Efficiency of Algorithms
Algorithm analysis Measuring the Efficiency of Algorithms When choosing algorithms, we often have to settle for a space/time tradeoff An algorithm can be designed to gain faster run times at the cost of
More informationChapter 2: Complexity Analysis
Chapter 2: Complexity Analysis Objectives Looking ahead in this chapter, we ll consider: Computational and Asymptotic Complexity Big-O Notation Properties of the Big-O Notation Ω and Θ Notations Possible
More informationWhat is an algorithm?
Reminders CS 142 Lecture 3 Analysis, ADTs & Objects Program 1 was assigned - Due on 1/27 by 11:55pm 2 Abstraction Measuring Algorithm Efficiency When you utilize the mylist.index(item) function you are
More informationLast week. Last week. Last week. Today. Binary Trees. CSC148 Intro. to Computer Science. Lecture 8: Binary Trees, BST
CSC1 Intro. to Computer Science Lecture : Binary Trees, BST Last week Tracing recursive programs Amir H. Chinaei, Summer 01 Office Hours: R 10-1 BA ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/
More informationCSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 2: designing classes, special methods, managing attributes; intro composition, inheritance Amir H. Chinaei, Summer 2016 Office Hours: R 10 12 BA4222 csc148ta@cdf.toronto.edu
More informationUNIT 5B Binary Search
205/09/30 UNIT 5B Binary Search Course Announcements Written exam next week (Wed. Oct 7 ) Practice exam available on the Resources page Exam reviews: Sunday afternoon; watch Piazza for times and places
More informationPosition Sort. Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India ABSTRACT. Keywords 1. INTRODUCTION 2. METHODS AND MATERIALS
Position Sort International Journal of Computer Applications (0975 8887) Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India Mamta Former IT Faculty Ghaziabad, India ABSTRACT Computer science has
More informationCSC148 Week 9. Larry Zhang
CSC148 Week 9 Larry Zhang 1 Announcement 2 More Announcements Assignment 2 out. You may work in groups of 1-3 students. Test 2 on next Friday (Mar 16). No lecture on that day. The test starts at 5:30 The
More informationLECTURE 9 Data Structures: A systematic way of organizing and accessing data. --No single data structure works well for ALL purposes.
LECTURE 9 Data Structures: A systematic way of organizing and accessing data. --No single data structure works well for ALL purposes. Input Algorithm Output An algorithm is a step-by-step procedure for
More informationComparison of x with an entry in the array
1. Basic operations in algorithm An algorithm to solve a particular task employs some set of basic operations. When we estimate the amount of work done by an algorithm we usually do not consider all the
More informationAlgorithm Analysis. Big Oh
Algorithm Analysis with Big Oh Data Structures and Design with Java and JUnit Chapter 12 Rick Mercer Algorithm Analysis w Objectives Analyze the efficiency of algorithms Analyze a few classic algorithms
More informationAlgorithmic Thinking: Computing with Lists
Algorithmic Thinking: Computing with Lists Announcements Tonight: Lab 3 PA 3 OLI Tomorrow Lab 4 Any Confusion Print vs Return: def?????? (a, b): result = a + b print (result) def?????? (a, b): result =
More informationMeasuring algorithm efficiency
CMPT 225 Measuring algorithm efficiency Timing Counting Cost functions Cases Best case Average case Worst case Searching Sorting O Notation O notation's mathematical basis O notation classes and notations
More informationO(1) How long does a function take to run? CS61A Lecture 6
How long does a function take to run? It depends on what computer it is run on! CS6A Lecture 6 20-06-28 Colleen Lewis Assumptions We want something independent of the speed of the computer We typically
More informationCS S-02 Algorithm Analysis 1
CS245-2008S-02 Algorithm Analysis 1 02-0: Algorithm Analysis When is algorithm A better than algorithm B? 02-1: Algorithm Analysis When is algorithm A better than algorithm B? Algorithm A runs faster 02-2:
More informationModule 07: Efficiency
Module 07: Efficiency Topics: Basic introduction to run-time efficiency Analyzing recursive code Analyzing iterative code 1 Consider the following two ways to calculate the maximum of a nonempty list.
More informationAnalysis of Algorithms. 5-Dec-16
Analysis of Algorithms 5-Dec-16 Time and space To analyze an algorithm means: developing a formula for predicting how fast an algorithm is, based on the size of the input (time complexity), and/or developing
More informationScientific Computing. Algorithm Analysis
ECE257 Numerical Methods and Scientific Computing Algorithm Analysis Today s s class: Introduction to algorithm analysis Growth of functions Introduction What is an algorithm? A sequence of computation
More informationSorting Pearson Education, Inc. All rights reserved.
1 19 Sorting 2 19.1 Introduction (Cont.) Sorting data Place data in order Typically ascending or descending Based on one or more sort keys Algorithms Insertion sort Selection sort Merge sort More efficient,
More informationLast week. Another example. More recursive examples. How about these functions? Recursive programs. CSC148 Intro. to Computer Science
CSC48 Intro. to Computer Science Lecture 7: Recursive Functions/Structures Trees mir H. Chinaei, Summer 206 Office Hours: R 0-2 B4222 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/ Course
More informationQuestions. 6. Suppose we were to define a hash code on strings s by:
Questions 1. Suppose you are given a list of n elements. A brute force method to find duplicates could use two (nested) loops. The outer loop iterates over position i the list, and the inner loop iterates
More informationAlgorithm Analysis. College of Computing & Information Technology King Abdulaziz University. CPCS-204 Data Structures I
Algorithm Analysis College of Computing & Information Technology King Abdulaziz University CPCS-204 Data Structures I Order Analysis Judging the Efficiency/Speed of an Algorithm Thus far, we ve looked
More informationCSE373: Data Structures and Algorithms Lecture 4: Asymptotic Analysis. Aaron Bauer Winter 2014
CSE373: Data Structures and Algorithms Lecture 4: Asymptotic Analysis Aaron Bauer Winter 2014 Previously, on CSE 373 We want to analyze algorithms for efficiency (in time and space) And do so generally
More informationCS 331 Midterm Exam 1
CS 331 Midterm Exam 1 Friday, October 6 th, 2016 Please bubble your answers in on the provided answer sheet. Also be sure to write and bubble in your student ID number (without the leading A ). 1. What
More informationAnother Sorting Algorithm
1 Another Sorting Algorithm What was the running time of insertion sort? Can we do better? 2 Designing Algorithms Many ways to design an algorithm: o Incremental: o Divide and Conquer: 3 Divide and Conquer
More informationCSE 332 Spring 2014: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Spring 2014: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More information10/5/2016. Comparing Algorithms. Analyzing Code ( worst case ) Example. Analyzing Code. Binary Search. Linear Search
10/5/2016 CSE373: Data Structures and Algorithms Asymptotic Analysis (Big O,, and ) Steve Tanimoto Autumn 2016 This lecture material represents the work of multiple instructors at the University of Washington.
More informationCOMP 250 Fall recurrences 2 Oct. 13, 2017
COMP 250 Fall 2017 15 - recurrences 2 Oct. 13, 2017 Here we examine the recurrences for mergesort and quicksort. Mergesort Recall the mergesort algorithm: we divide the list of things to be sorted into
More informationToday s Outline. CSE 326: Data Structures Asymptotic Analysis. Analyzing Algorithms. Analyzing Algorithms: Why Bother? Hannah Takes a Break
Today s Outline CSE 326: Data Structures How s the project going? Finish up stacks, queues, lists, and bears, oh my! Math review and runtime analysis Pretty pictures Asymptotic analysis Hannah Tang and
More informationRUNNING TIME ANALYSIS. Problem Solving with Computers-II
RUNNING TIME ANALYSIS Problem Solving with Computers-II Performance questions 4 How efficient is a particular algorithm? CPU time usage (Running time complexity) Memory usage Disk usage Network usage Why
More informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 11, 2017 Outline Outline 1 Chapter 6: Recursion Outline Chapter 6: Recursion 1 Chapter 6: Recursion Measuring Complexity
More informationCS 261 Data Structures. Big-Oh Analysis: A Review
CS 261 Data Structures Big-Oh Analysis: A Review Big-Oh: Purpose How can we characterize the runtime or space usage of an algorithm? We want a method that: doesn t depend upon hardware used (e.g., PC,
More informationDisjoint set (Union-Find)
CS124 Lecture 6 Spring 2011 Disjoint set (Union-Find) For Kruskal s algorithm for the minimum spanning tree problem, we found that we needed a data structure for maintaining a collection of disjoint sets.
More informationECE6095: CAD Algorithms. Optimization Techniques
ECE6095: CAD Algorithms Optimization Techniques Mohammad Tehranipoor ECE Department 6 September 2010 1 Optimization Techniques Objective: A basic review of complexity Review of basic algorithms Some physical
More informationECE 2574: Data Structures and Algorithms - Big-O Notation. C. L. Wyatt
ECE 2574: Data Structures and Algorithms - Big-O Notation C. L. Wyatt Today we will look at a common way algorithms are described, as an upper-bound on their growth rate functions. These are used to categorize
More informationCMSC 341 Lecture 16/17 Hashing, Parts 1 & 2
CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2 Prof. John Park Based on slides from previous iterations of this course Today s Topics Overview Uses and motivations of hash tables Major concerns with hash
More informationCS1 Lecture 22 Mar. 6, 2019
CS1 Lecture 22 Mar. 6, 2019 HW 5 due Friday Questions? In discussion exams next week Last time Ch 12. Zip, lambda, etc Default/keyword function parameters Ch 19 conditional expresssions, list comprehensions
More informationLecture 5 Sorting Arrays
Lecture 5 Sorting Arrays 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning, Rob Simmons We begin this lecture by discussing how to compare running times of functions in an abstract,
More informationCSC236 Week 5. Larry Zhang
CSC236 Week 5 Larry Zhang 1 Logistics Test 1 after lecture Location : IB110 (Last names A-S), IB 150 (Last names T-Z) Length of test: 50 minutes If you do really well... 2 Recap We learned two types of
More informationCopyright 2012 by Pearson Education, Inc. All Rights Reserved.
***This chapter is a bonus Web chapter CHAPTER 17 Sorting Objectives To study and analyze time efficiency of various sorting algorithms ( 17.2 17.7). To design, implement, and analyze bubble sort ( 17.2).
More informationRecall. Key terms. Review. Encapsulation (by getters, setters, properties) OOP Features. CSC148 Intro. to Computer Science
CSC148 Intro. to Computer Science Lecture 3: designing classes, special methods, composition, inheritance, Stack, Sack Amir H. Chinaei, Summer 2016 Office Hours: R 10-12 BA4222 ahchinaei@cs.toronto.edu
More informationSorting. Bubble Sort. Selection Sort
Sorting In this class we will consider three sorting algorithms, that is, algorithms that will take as input an array of items, and then rearrange (sort) those items in increasing order within the array.
More informationMergeSort, Recurrences, Asymptotic Analysis Scribe: Michael P. Kim Date: April 1, 2015
CS161, Lecture 2 MergeSort, Recurrences, Asymptotic Analysis Scribe: Michael P. Kim Date: April 1, 2015 1 Introduction Today, we will introduce a fundamental algorithm design paradigm, Divide-And-Conquer,
More informationCSE 143. Complexity Analysis. Program Efficiency. Constant Time Statements. Big Oh notation. Analyzing Loops. Constant Time Statements (2) CSE 143 1
CSE 1 Complexity Analysis Program Efficiency [Sections 12.1-12., 12., 12.9] Count number of instructions executed by program on inputs of a given size Express run time as a function of the input size Assume
More informationCS 231 Data Structures and Algorithms Fall Algorithm Analysis Lecture 16 October 10, Prof. Zadia Codabux
CS 231 Data Structures and Algorithms Fall 2018 Algorithm Analysis Lecture 16 October 10, 2018 Prof. Zadia Codabux 1 Agenda Algorithm Analysis 2 Administrative No quiz this week 3 Algorithm Analysis 4
More informationAlgorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48
Algorithm Analysis (Algorithm Analysis ) Data Structures and Programming Spring 2018 1 / 48 What is an Algorithm? An algorithm is a clearly specified set of instructions to be followed to solve a problem
More informationDraft Notes 1 : Scaling in Ad hoc Routing Protocols
Draft Notes 1 : Scaling in Ad hoc Routing Protocols Timothy X Brown University of Colorado April 2, 2008 2 Introduction What is the best network wireless network routing protocol? This question is a function
More informationCopyright 2012 by Pearson Education, Inc. All Rights Reserved.
CHAPTER 16 Developing Efficiency Algorithms Objectives To estimate algorithm efficiency using the Big O notation ( 16.). To explain growth rates and why constants and nondominating terms can be ignored
More informationRemember, to manage anything, we need to measure it. So, how do we compare two implementations? ArrayBag vs. LinkedBag Which is more efficient?
CS706 Intro to Object Oriented Dev II - Spring 04 Announcements Week 4 Program due Two Weeks! Lab 3-4 required completion this week First web-cat submission Material Evaluation of efficiency Time Analysis
More informationWelcome to CSC148! Introduction to Computer Science
Welcome to CSC148! Introduction to Computer Science Amir H. Chinaei, Summer 2016 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/ Office hours: R 10 BA4222 Today Course Outline (bird s-eye
More informationIntroduction to Programming I
Still image from YouTube video P vs. NP and the Computational Complexity Zoo BBM 101 Introduction to Programming I Lecture #09 Development Strategies, Algorithmic Speed Erkut Erdem, Aykut Erdem & Aydın
More information1 Introduction. 2 InsertionSort. 2.1 Correctness of InsertionSort
CS 161, Lecture 2 MergeSort, Recurrences 101, and Asymptotic Analysis Scribes: Michael Kim (2015), Ofir Geri (2016), M. Wootters (2017) Date: September 27, 2017 Adapted From Virginia Williams lecture notes
More informationa) For the binary tree shown below, what are the preorder, inorder and post order traversals.
CS61CS61B Fall 2014 Guerrilla Section 2 Solutions 1. Trees a) For the binary tree shown below, what are the preorder, inorder and post order traversals. 23 / \ 47 0 / / \ 9 15 100 / \ / \ \ 1 935 12 42
More informationCSE373 Fall 2013, Midterm Examination October 18, 2013
CSE373 Fall 2013, Midterm Examination October 18, 2013 Please do not turn the page until the bell rings. Rules: The exam is closed-book, closed-note, closed calculator, closed electronics. Please stop
More informationCITS3001. Algorithms, Agents and Artificial Intelligence. Semester 2, 2016
CITS3001 Algorithms, Agents and Artificial Intelligence Semester 2, 2016 Tim French School of Computer Science & Software Eng. The University of Western Australia 2. Review of algorithmic concepts CLRS,
More informationAnalysis of Algorithms. CSE Data Structures April 10, 2002
Analysis of Algorithms CSE 373 - Data Structures April 10, 2002 Readings and References Reading Chapter 2, Data Structures and Algorithm Analysis in C, Weiss Other References 10-Apr-02 CSE 373 - Data Structures
More informationRepetition Structures
Repetition Structures Chapter 5 Fall 2016, CSUS Introduction to Repetition Structures Chapter 5.1 1 Introduction to Repetition Structures A repetition structure causes a statement or set of statements
More informationThe Running Time of Programs
The Running Time of Programs The 90 10 Rule Many programs exhibit the property that most of their running time is spent in a small fraction of the source code. There is an informal rule that states 90%
More information6.00 Notes On Big-O Notation
6.00 Notes On Big-O Notation April 13, 2011 Sarina Canelake See also http://en.wikipedia.org/wiki/big O notation We use big-o notation in the analysis of algorithms to describe an algorithm s usage of
More informationCondition-Controlled Loop. Condition-Controlled Loop. If Statement. Various Forms. Conditional-Controlled Loop. Loop Caution.
Repetition Structures Introduction to Repetition Structures Chapter 5 Spring 2016, CSUS Chapter 5.1 Introduction to Repetition Structures The Problems with Duplicate Code A repetition structure causes
More informationCS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims. Lecture 10: Asymptotic Complexity and
CS/ENGRD 2110 Object-Oriented Programming and Data Structures Spring 2012 Thorsten Joachims Lecture 10: Asymptotic Complexity and What Makes a Good Algorithm? Suppose you have two possible algorithms or
More informationCSE 373 APRIL 3 RD ALGORITHM ANALYSIS
CSE 373 APRIL 3 RD ALGORITHM ANALYSIS ASSORTED MINUTIAE HW1P1 due tonight at midnight HW1P2 due Friday at midnight HW2 out tonight Second Java review session: Friday 10:30 ARC 147 TODAY S SCHEDULE Algorithm
More informationCSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Spring 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More informationQB LECTURE #1: Algorithms and Dynamic Programming
QB LECTURE #1: Algorithms and Dynamic Programming Adam Siepel Nov. 16, 2015 2 Plan for Today Introduction to algorithms Simple algorithms and running time Dynamic programming Soon: sequence alignment 3
More informationCS 137 Part 7. Big-Oh Notation, Linear Searching and Basic Sorting Algorithms. November 10th, 2017
CS 137 Part 7 Big-Oh Notation, Linear Searching and Basic Sorting Algorithms November 10th, 2017 Big-Oh Notation Up to this point, we ve been writing code without any consideration for optimization. There
More information1. Efficiency of Algorithms. Programming and Algorithms II Degree in Bioinformatics Fall 2018
1. Efficiency of Algorithms Programming and Algorithms II Degree in Bioinformatics Fall 2018 Whatisa GoodProgram? External: Correct doeswhatit ssupposedto do Efficient uses few resources Time, memory,
More informationPLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science
PLEASE HAND IN UNIVERSITY OF TORONTO Faculty of Arts and Science AUGUST EXAMINATIONS CSC 108H1Y Instructor: Daniel Zingaro Duration three hours PLEASE HAND IN Examination Aids: None. Student Number: Last
More information(Refer Slide Time: 1:27)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data
More informationQuiz 1 Solutions. (a) f(n) = n g(n) = log n Circle all that apply: f = O(g) f = Θ(g) f = Ω(g)
Introduction to Algorithms March 11, 2009 Massachusetts Institute of Technology 6.006 Spring 2009 Professors Sivan Toledo and Alan Edelman Quiz 1 Solutions Problem 1. Quiz 1 Solutions Asymptotic orders
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2017S-02 Algorithm Analysis David Galles Department of Computer Science University of San Francisco 02-0: Algorithm Analysis When is algorithm A better than algorithm
More information