CP222 Computer Science II. Recurrence Relations and Basic Sorting
|
|
- Lucy Nash
- 5 years ago
- Views:
Transcription
1 CP222 Computer Science II Recurrence Relations and Basic Sorting
2 Amazon raising Prime subscription price to $119 Tech News!
3 Tech News! Amazon raising Prime subscription price to $119 Golden State Killer identified partially through the use of onilne genealogy databases
4 Running times of: - bag methods - linked list methods - stack methods - queue methods
5 Fingerprinters?
6 class Stopwatch { private long start_time; public Stopwatch() { start_time = System.currentTimeMillis(); } } public double elapsedtime() { long now = System.currentTimeMillis(); return (now start) / ; }
7 Recursion Some problems can be solved elegantly by first solving a smaller, related problem We can model this technique using recursive methods: methods that call themselves
8 The Two Rules of Recursion Rule 1: The recursion has to stop somewhere Infinite recursion is not helpful
9 The Two Rules of Recursion Rule 1: The recursion has to stop somewhere Infinite recursion is not helpful Rule 2: Each recursive call should get the program closer to the stopping point Recursive calls solve a smaller version of the original problem
10 The Two Rules of Recursion Rule 1: Base case Rule 2: Recursive case
11 Recursive Example: Factorial What is 7 factorial?
12 Recursive Example: Factorial What is 7 factorial? 7 * 6!
13 Recursive Example: Factorial What is 6 factorial? 6 * 5!
14 Factorial Base case (n == 1) Recursive case (n > 1)
15 Factorial Base case (n == 1) : result = 1 Recursive case (n > 1) : result = n * factorial(n -1)
16 Recursively print out a Linked List function printlisthelper(node): if node is not null: print node printlisthelper(node.getneighbor()) function printlist(): printlisthelper(first)
17 Recursively print out a Linked List Time complexity? function printlisthelper(node): if node is not null: print node printlisthelper(node.getneighbor()) function printlist(): printlisthelper(first)
18 Time Complexity of Recursion Based on two things: Number of operations in the recursive method Number of recursive calls
19 Time Complexity of Recursion Based on two things: Number of operations in the recursive method Number of recursive calls Define a recurrence relation
20 Recurrence Relation T(n) = T(n-1) + 3 T(0) = 0
21 Recurrence Relation T(n) = T(n-1) + 3 T(0) = 0 Number of operations for input size, n
22 Recurrence Relation Number of operations for input size, n - 1 T(n) = T(n-1) + 3 T(0) = 0
23 Recurrence Relation There are 3 extra steps (check if, print node, get neighbor) T(n) = T(n-1) + 3 T(0) = 0
24 Recurrence Relation Base case: no nodes, no steps. T(n) = T(n-1) + 3 T(0) = 0
25 Find closed form solution for the relation T(n) = T(n-1) + 3
26 Find closed form solution for the relation T(n) = T(n-1) + 3 = [T(n-2) + 3] + 3 Why can we rewrite this way?
27 Find closed form solution for the relation T(n) = T(n-1) + 3 = [T(n-2) + 3] + 3 = T(n-2) + 6
28 Find closed form solution for the relation T(n) = T(n-2) + 6 = [T(n-3) + 3] + 6 = T(n-3) + 9
29 Find closed form solution for the relation T(n) = T(n-i) + 3i
30 Find closed form solution for the relation T(n) = T(n-i) + 3i Let i = n = T(n-n) + 3n
31 Find closed form solution for the relation T(n) = T(n-i) + 3i = T(n-n) + 3n = T(0) + 3n O(n) T(n) = 3n
32 Recurrence Relation? public void guessnumber(int bottom, int top) { int guess = (top + bottom) / 2; System.out.println( Is it + guess +? ); String response = myscanner.next(); if (response.equals( y )) { System.out.println( I win. Good game. ); } else if (response.equals( h )) { guessnumber(guess, top); } else { guessnumber(bottom, guess); } }
33 Guess Number Recurrence Relation T(n) = T(n/2) + 5 T(1) = 1
34 Guess Number Recurrence Relation T(n) = T(n/2) + c T(1) = c
35 Solve the recurrence relation? T(n) = T(n/2) + c T(1) = c
36 Solve it! T(n) = T(n/2) + c = [T(n/4) + c] + c = T(n/4) + 2c
37 Solve it! T(n) = T(n/4) + 2c = [T(n/8) + c] + 2c = T(n/8) + 3c
38 Step Expression 1 T(n/2) + c 2 T(n/4) + 2c 3 T(n/8) + 3c k???
39 T(n) = T(n/2 k ) + kc Solve it!
40 Solve it! T(n) = T(n/2 k ) + kc Set k = log 2 (n) Why?
41 Solve it! T(n) = T(n/2 k ) + kc Set k = log 2 (n) So 2 k = n
42 Solve it! T(n) = T(n/2 k ) + kc Set k = log 2 (n) So 2 k = n T(n) = T(1) + c log 2 (n) T(n) = c + c log 2 (n)
43 Solve it! T(n) = T(n/2 k ) + kc Set k = log 2 (n) So 2 k = n T(n) = T(1) + c log 2 (n) O(log 2 (n)) T(n) = c + c log 2 (n)
44 Searching and Sorting Given a data structure, how do we find a particular element? How long does it take? How can we put data into sorted order? How can we do it quickly?
45 Suppose we want to write a program to check if a bingo is legal in Scrabble. We have a dictionary of legal Scrabble words.
46 Is Bingo Legal? // Assume we have an ArrayList of legal words // called words public boolean islegal(string possiblebingo) { for (int i = 0; i < words.size(); i++) { if (possiblebingo.equals(words.get(i))) { return true; } } return false; }
47 What is the time complexity of islegal()? Best case? Average case? Worst case?
48 This process is called linear search.
49 Do humans use linear search when checking if words are legal when playing Scrabble?
50 If we assume the wordlist is sorted, can we search with fewer comparisons?
51 Binary Search // Assume words is in sorted order islegal(possiblebingo, start, end): if start == end: return false else: nextindex = (start + end) / 2 current = words[nextindex] if (current == possiblebingo) { return true; } else if (current < possiblebingo) { return islegal(possiblebingo, nextindex + 1, end) } else { return islegalhelper(possiblebingo, start, nextindex - 1) }
52 OK, binary search is faster. How do we get the wordlist in sorted order in the first place?
53 Sorting Problem [ 8, 3, 1, 7, 9, 2, 4 ] [ 1, 2, 3, 4, 7, 8, 9 ]
54 How do humans sort?
55 Selection Sort Algorithm Find smallest element left to be sorted This is done by linear search Put it at the end of the sorted part of the list For the first smallest, put it at the very beginning of the list The next smallest goes at position 2, etc.
56 Selection Sort [ 8, 3, 1, 7, 9, 2, 4 ]
57 Selection Sort [ 8, 3, 1, 7, 9, 2, 4 ] Scan list (linearly) for smallest element
58 Selection Sort [ 8, 3, 1, 7, 9, 2, 4 ] Here's the smallest.
59 Selection Sort [ 8, 3, 1, 7, 9, 2, 4 ] Flip the position of the smallest with the next unsorted value.
60 Selection Sort [ 1, 3, 8, 7, 9, 2, 4 ] Flip the position of the smallest with the next unsorted value.
61 Selection Sort [ 1, 3, 8, 7, 9, 2, 4 ] Part of the list is now sorted.
62 Selection Sort [ 1, 3, 8, 7, 9, 2, 4 ] Find the smallest element not in the sorted part of the list.
63 Selection Sort [ 1, 3, 8, 7, 9, 2, 4 ] Here's the next smallest.
64 Selection Sort [ 1, 3, 8, 7, 9, 2, 4 ] Flip it with the first unsorted element.
65 Selection Sort [ 1, 2, 8, 7, 9, 3, 4 ] Flip it with the first unsorted element.
66 Selection Sort [ 1, 2, 3, 4, 7, 8, 9 ] How long does the algorithm take with a length n array?
67 Insertion Sort Algorithm Maintain two parts of the list: unsorted and sorted For each unsorted element, insert it into the sorted part of the list in the correct location This insertion may require shifting values over to make room
68 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ]
69 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] The sorted part of the array starts out as just the first value.
70 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] The rest of the list is unsorted.
71 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] Start with the next unsorted element.
72 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] Insert it in the correct location of the sorted part of the list. Here it needs to go before the 8.
73 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] There isn't space before the 8, so we have to shift the 8 up.
74 Insertion Sort [ 8, 3, 1, 7, 9, 2, 4 ] Before we shift the 8, we store the 3 somewhere else so it is not lost. key = 3
75 Insertion Sort [ 8, 8, 1, 7, 9, 2, 4 ] 8 is now shifted. key = 3
76 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] Now put the key value in its correct location. key = 3
77 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] Now this part of the list is sorted.
78 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] Repeat the process for the next unsorted element.
79 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] key = 1 Set the key.
80 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] key = 1 Find its insertion point.
81 Insertion Sort [ 3, 8, 1, 7, 9, 2, 4 ] key = 1 Shift both 3 and 8 up. Start by shifting 8. Why?
82 Insertion Sort [ 3, 8, 8, 7, 9, 2, 4 ] key = 1 8 was shifted.
83 Insertion Sort [ 3, 3, 8, 7, 9, 2, 4 ] key = 1 3 was shifted.
84 Insertion Sort [ 1, 3, 8, 7, 9, 2, 4 ] key = 1 Insert the key.
85 InsertionSort.java
86 InsertionSort.java vs. SelectionSort.java
87 Bubble Sort Algorithm Bubble up larger values to the end of the list Scan through the unbubbled elements two at a time If the second of the two elements is smaller, flip their positions Now make the second element the new first and get the next element from the list as the new second
88 Bubble Sort [ 8, 3, 1, 7, 9, 2, 4 ] Compare the first two elements.
89 Bubble Sort [ 8, 3, 1, 7, 9, 2, 4 ] The second one is smaller, so flip them.
90 Bubble Sort [ 3, 8, 1, 7, 9, 2, 4 ] The second one is smaller, so flip them.
91 Bubble Sort [ 3, 8, 1, 7, 9, 2, 4 ] Compare the next group of two.
92 Bubble Sort [ 3, 8, 1, 7, 9, 2, 4 ] The second one is smaller, so flip them.
93 Bubble Sort [ 3, 1, 8, 7, 9, 2, 4 ] The second one is smaller, so flip them.
94 Bubble Sort [ 3, 1, 8, 7, 9, 2, 4 ] See how 8 is bubbling up?
95 Bubble Sort [ 3, 1, 8, 7, 9, 2, 4 ] Compare next two. Second is smaller.
96 Bubble Sort [ 3, 1, 7, 8, 9, 2, 4 ] Flip them.
97 Bubble Sort [ 3, 1, 7, 8, 2, 4, 9 ] At the end of the process the largest element has bubbled up.
98 Bubble Sort [ 3, 1, 7, 8, 2, 4, 9 ] Now bubble up the next largest element.
99 Bubble Sort [ 1, 3, 7, 2, 4, 8, 9 ] Stop bubbling up when you reach the values that have already bubbled.
100 Obama Bubble
101 BREAK!
CP222 Computer Science II. Searching and Sorting
CP222 Computer Science II Searching and Sorting New Boston Dynamics wheeled robot Tech News! Tech News! New Boston Dynamics wheeled robot Man charged with arson based on pacemaker data Quiz! How do you
More informationAnalyzing Complexity of Lists
Analyzing Complexity of Lists Operation Sorted Array Sorted Linked List Unsorted Array Unsorted Linked List Search( L, x ) O(logn) O( n ) O( n ) O( n ) Insert( L, x ) O(logn) O( n ) + O( 1 ) O( 1 ) + O(
More informationQ1 Q2 Q3 Q4 Q5 Q6 Total
Name: SSN: Computer Science Foundation Exam May 5, 006 Computer Science Section 1A Q1 Q Q3 Q4 Q5 Q6 Total KNW KNW KNW ANL,DSN KNW DSN You have to do all the 6 problems in this section of the exam. Partial
More informationReview. CSE 143 Java. A Magical Strategy. Hash Function Example. Want to implement Sets of objects Want fast contains( ), add( )
Review CSE 143 Java Hashing Want to implement Sets of objects Want fast contains( ), add( ) One strategy: a sorted list OK contains( ): use binary search Slow add( ): have to maintain list in sorted order
More informationTopics Applications Most Common Methods Serial Search Binary Search Search by Hashing (next lecture) Run-Time Analysis Average-time analysis Time anal
CSC212 Data Structure t Lecture 18 Searching Instructor: George Wolberg Department of Computer Science City College of New York @ George Wolberg, 2016 1 Topics Applications Most Common Methods Serial Search
More informationSearching and Sorting
CS 211 SEARCH & SORT SEARCHING & SORTING Searching and Sorting Searching means that we have some collection of data, and we seek a particular value that might be contained within our collection. We provide
More informationSorting. Task Description. Selection Sort. Should we worry about speed?
Sorting Should we worry about speed? Task Description We have an array of n values in any order We need to have the array sorted in ascending or descending order of values 2 Selection Sort Select the smallest
More informationEXAMINATIONS 2016 TRIMESTER 2
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW VICTORIA U N I V E R S I T Y O F W E L L I N G T O N EXAMINATIONS 2016 TRIMESTER 2 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
CS 112 Introduction to Computing II Wayne Snyder Department Boston University Today Recursive Sorting Methods and their Complexity: Mergesort Conclusions on sorting algorithms and complexity Next Time:
More informationData Structures. Giri Narasimhan Office: ECS 254A Phone: x-3748
Data Structures Giri Narasimhan Office: ECS 254A Phone: x-3748 giri@cs.fiu.edu Search Tree Structures Binary Tree Operations u Tree Traversals u Search O(n) calls to visit() Why? Every recursive has one
More informationComputer Science. Section 1B
Computer Science Foundation Exam August 8, 2008 Computer Science Section 1B KEY Name: SSN: Max Pts Passing Pts Category Q1 10 6 KNW Q2 8 4 CMP Q3 12 8 ANL Q4 8 6 DSN Q5 12 8 DSN Total 50 32 Score You have
More informationFaculty of Science FINAL EXAMINATION COMP-250 A Introduction to Computer Science School of Computer Science, McGill University
NAME: STUDENT NUMBER:. Faculty of Science FINAL EXAMINATION COMP-250 A Introduction to Computer Science School of Computer Science, McGill University Examimer: Prof. Mathieu Blanchette December 8 th 2005,
More informationFundamental problem in computing science. putting a collection of items in order. Often used as part of another algorithm
cmpt-225 Sorting Sorting Fundamental problem in computing science putting a collection of items in order Often used as part of another algorithm e.g. sort a list, then do many binary searches e.g. looking
More informationSorting & Searching (and a Tower)
Sorting & Searching (and a Tower) Sorting Sorting is the process of arranging a list of items into a particular order There must be some value on which the order is based There are many algorithms for
More informationAbout this exam review
Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review
More informationSAMPLE OF THE STUDY MATERIAL PART OF CHAPTER 6. Sorting Algorithms
SAMPLE OF THE STUDY MATERIAL PART OF CHAPTER 6 6.0 Introduction Sorting algorithms used in computer science are often classified by: Computational complexity (worst, average and best behavior) of element
More informationSorting is ordering a list of objects. Here are some sorting algorithms
Sorting Sorting is ordering a list of objects. Here are some sorting algorithms Bubble sort Insertion sort Selection sort Mergesort Question: What is the lower bound for all sorting algorithms? Algorithms
More informationWhile Loops A while loop executes a statement as long as a condition is true while condition: statement(s) Statement may be simple or compound Typical
Recommended Readings Chapter 5 Topic 5: Repetition Are you saying that I am redundant? That I repeat myself? That I say the same thing over and over again? 1 2 Repetition So far, we have learned How to
More informationFun facts about recursion
Outline examples of recursion principles of recursion review: recursive linked list methods binary search more examples of recursion problem solving using recursion 1 Fun facts about recursion every loop
More informationSearch,Sort,Recursion
Search,Sort,Recursion Searching, Sorting and Recursion Searching Linear Search Inserting into an Array Deleting from an Array Selection Sort Bubble Sort Binary Search Recursive Binary Search Searching
More informationCSC 1351: Exam 2: Midterm
VERSION C CSC 1351: Exam 2: Midterm 1 Recursion 1.1 From CodingBat. Given a string, compute recursively a new string where all the adjacent chars are now separated by a *. allstar (" hello ") -> "h*e*l*l*o"
More informationSearch Trees. Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Binary Search Trees
Unit 9, Part 2 Search Trees Computer Science S-111 Harvard University David G. Sullivan, Ph.D. Binary Search Trees Search-tree property: for each node k: all nodes in k s left subtree are < k all nodes
More informationCS171 Midterm Exam. October 29, Name:
CS171 Midterm Exam October 29, 2012 Name: You are to honor the Emory Honor Code. This is a closed-book and closed-notes exam. You have 50 minutes to complete this exam. Read each problem carefully, and
More informationKF5008 Algorithm Efficiency; Sorting and Searching Algorithms;
KF5008 Algorithm Efficiency; Sorting and Searching Algorithms; Efficiency: Principles An algorithm is a step-by-step procedure for solving a stated problem. The algorithm will be performed by a processor
More informationCompSci 201 Tree Traversals & Heaps
CompSci 201 Tree Traversals & Heaps Jeff Forbes March 28, 2018 3/28/18 CompSci 201, Spring 2018, Heaps 1 R is for R Programming language of choice in Stats Random From Monte-Carlo to [0,1) Recursion Base
More informationDO NOT. UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N.
CS61B Fall 2013 UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division Test #2 Solutions DO NOT P. N. Hilfinger REPRODUCE 1 Test #2 Solution 2 Problems
More informationQuicksort. Repeat the process recursively for the left- and rightsub-blocks.
Quicksort As the name implies, this is the fastest known sorting algorithm in practice. It is excellent for average input but bad for the worst-case input. (you will see later). Basic idea: (another divide-and-conquer
More informationSome Search Structures. Balanced Search Trees. Binary Search Trees. A Binary Search Tree. Review Binary Search Trees
Some Search Structures Balanced Search Trees Lecture 8 CS Fall Sorted Arrays Advantages Search in O(log n) time (binary search) Disadvantages Need to know size in advance Insertion, deletion O(n) need
More informationLesson 12: Recursion, Complexity, Searching and Sorting. Modifications By Mr. Dave Clausen Updated for Java 1_5
Lesson 12: Recursion, Complexity, Searching and Sorting Modifications By Mr. Dave Clausen Updated for Java 1_5 1 Lesson 12: Recursion, Complexity, and Searching and Sorting Objectives: Design and implement
More informationRecursive Algorithms. CS 180 Sunil Prabhakar Department of Computer Science Purdue University
Recursive Algorithms CS 180 Sunil Prabhakar Department of Computer Science Purdue University Recursive Algorithms Within a given method, we are allowed to call other accessible methods. It is also possible
More informationThe smallest element is the first one removed. (You could also define a largest-first-out priority queue)
Priority Queues Priority queue A stack is first in, last out A queue is first in, first out A priority queue is least-first-out The smallest element is the first one removed (You could also define a largest-first-out
More informationChapter 9. Priority Queue
Chapter 9 Priority Queues, Heaps, Graphs Spring 2015 1 Priority Queue Priority Queue An ADT in which only the item with the highest priority can be accessed 2Spring 2015 Priority Depends on the Application
More informationB-Trees. Based on materials by D. Frey and T. Anastasio
B-Trees Based on materials by D. Frey and T. Anastasio 1 Large Trees n Tailored toward applications where tree doesn t fit in memory q operations much faster than disk accesses q want to limit levels of
More informationUnit 10: Sorting/Searching/Recursion
Unit 10: Sorting/Searching/Recursion Notes AP CS A Searching. Here are two typical algorithms for searching a collection of items (which for us means an array or a list). A Linear Search starts at the
More informationCS 137 Part 8. Merge Sort, Quick Sort, Binary Search. November 20th, 2017
CS 137 Part 8 Merge Sort, Quick Sort, Binary Search November 20th, 2017 This Week We re going to see two more complicated sorting algorithms that will be our first introduction to O(n log n) sorting algorithms.
More informationData Structures. Giri Narasimhan Office: ECS 254A Phone: x-3748
Data Structures Giri Narasimhan Office: ECS 254A Phone: x-3748 giri@cs.fiu.edu Motivation u Many applications where Items have associated priorities Job scheduling Long print jobs vs short ones; OS jobs
More informationCS103L SPRING 2017 UNIT 8: RECURSION
CS103L SPRING 2017 UNIT 8: RECURSION RECURSION A recursion function is defined in terms of itself Applies to math, e.g. recursion relations, sequences Fibonacci: F 0 = 1, F 1 = 1, F n = F n-1 + F n-2 Applies
More informationModel Solutions. COMP 103: Mid-term Test. 21st of August, 2014
Family Name:............................. Other Names:............................. ID Number:............................... Signature.................................. Instructions Time allowed: 50 minutes
More informationCS 315 Data Structures mid-term 2
CS 315 Data Structures mid-term 2 1) Shown below is an AVL tree T. Nov 14, 2012 Solutions to OPEN BOOK section. (a) Suggest a key whose insertion does not require any rotation. 18 (b) Suggest a key, if
More informationRecursion. What is Recursion? Simple Example. Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem
Recursion Repeatedly Reduce the Problem Into Smaller Problems to Solve the Big Problem What is Recursion? A problem is decomposed into smaller sub-problems, one or more of which are simpler versions of
More informationCP122 CS I. Chapter 13: Recursion
CP122 CS I Chapter 13: Recursion Russian law banning VPNs comes into effect today Tech News! Tech News! Russian law banning VPNs comes into effect today Shelley: AI to write horror story openings THE PATH
More informationIntroduction to Computers and Programming. Today
Introduction to Computers and Programming Prof. I. K. Lundqvist Lecture 10 April 8 2004 Today How to determine Big-O Compare data structures and algorithms Sorting algorithms 2 How to determine Big-O Partition
More informationInstructions PLEASE READ (notice bold and underlined phrases)
Assignment 4 Recursive and Sorting Methods Solutions Required Reading Java Foundations Chapter 13 Linked Structures Chapter 17 Recursion Chapter 18 Searching and Sorting Chapter 19 Trees Instructions PLEASE
More informationAPCS Semester #1 Final Exam Practice Problems
Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester
More informationCS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University
0/6/6 CS Introduction to Computing II Wayne Snyder Department Boston University Today Conclusions on Iterative Sorting: Complexity of Insertion Sort Recursive Sorting Methods and their Complexity: Mergesort
More informationPriority Queues and Heaps
Priority Queues and Heaps Data Structures and Algorithms CSE 373 SU 18 BEN JONES 1 Warm Up We have seen several data structures that can implement the Dictionary ADT so far: Arrays, Binary (AVL) Trees,
More informationComputer Science Foundation Exam. May 6, Computer Science. Section 1A. No Calculators! KEY. Score: 50
Computer Science Foundation Exam May 6, 2005 Computer Science Section 1A No Calculators! Name: KEY SSN: Score: 50 In this section of the exam, there are four (4) problems. You must do all of them. The
More informationYork University AS/AK/ITEC INTRODUCTION TO DATA STRUCTURES. Midterm Sample I. Examiner: S. Chen Duration: One Hour and 30 Minutes
York University AS/AK/ITEC 2620 3.0 INTRODUCTION TO DATA STRUCTURES Midterm Sample I Examiner: S. Chen Duration: One Hour and 30 Minutes This exam is closed textbook(s) and closed notes. Use of any electronic
More informationDivide & Conquer. 2. Conquer the sub-problems by solving them recursively. 1. Divide the problem into number of sub-problems
Divide & Conquer Divide & Conquer The Divide & Conquer approach breaks down the problem into multiple smaller sub-problems, solves the sub-problems recursively, then combines the solutions of the sub-problems
More information3. Priority Queues. ADT Stack : LIFO. ADT Queue : FIFO. ADT Priority Queue : pick the element with the lowest (or highest) priority.
3. Priority Queues 3. Priority Queues ADT Stack : LIFO. ADT Queue : FIFO. ADT Priority Queue : pick the element with the lowest (or highest) priority. Malek Mouhoub, CS340 Winter 2007 1 3. Priority Queues
More informationBalanced Search Trees
Balanced Search Trees Computer Science E-22 Harvard Extension School David G. Sullivan, Ph.D. Review: Balanced Trees A tree is balanced if, for each node, the node s subtrees have the same height or have
More informationCSC 222: Object-Oriented Programming Spring 2012
CSC 222: Object-Oriented Programming Spring 2012 Searching and sorting sequential search algorithm analysis: big-oh, rate-of-growth binary search insertion sort, selection sort 1 Searching a list suppose
More informationEXAMINATIONS 2012 Trimester 1, MID-TERM TEST. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2012 Trimester 1, MID-TERM TEST COMP103 Introduction
More informationPriority Queues. 04/10/03 Lecture 22 1
Priority Queues It is a variant of queues Each item has an associated priority value. When inserting an item in the queue, the priority value is also provided for it. The data structure provides a method
More informationSorting Algorithms. + Analysis of the Sorting Algorithms
Sorting Algorithms + Analysis of the Sorting Algorithms Insertion Sort What if first k elements of array are already sorted? 4, 7, 12, 5, 19, 16 We can shift the tail of the sorted elements list down and
More information// a stack is printed from bottom (leftmost) to top (rightmost) System.out.println(stk);
CompSci 100 Test 2 Spring 2011 Prof. Rodger April 14, 2011 Some common recurrence relations T(n) = T(n/2) +O(1) O(log n) T(n) = T(n/2) +O(n) O(n) T(n) = 2T(n/2) +O(1) O(n) T(n) = 2T(n/2) +O(n) O(n log
More informationRecursion. CSE 2320 Algorithms and Data Structures University of Texas at Arlington
Recursion CSE 2320 Algorithms and Data Structures University of Texas at Arlington Updated: 2/21/2018 1 Background & Preclass Preparation Background (review): Recursive functions Factorial must know how
More informationDepartment of Computer Science Admission Test for PhD Program. Part I Time : 30 min Max Marks: 15
Department of Computer Science Admission Test for PhD Program Part I Time : 0 min Max Marks: 5 Each Q carries marks. ¼ mark will be deducted for every wrong answer. Part II of only those candidates will
More informationModule 2: Classical Algorithm Design Techniques
Module 2: Classical Algorithm Design Techniques Dr. Natarajan Meghanathan Associate Professor of Computer Science Jackson State University Jackson, MS 39217 E-mail: natarajan.meghanathan@jsums.edu Module
More informationCSE 214 Computer Science II Searching
CSE 214 Computer Science II Searching Fall 2017 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Introduction Searching in a
More informationPriority queues. Priority queues. Priority queue operations
Priority queues March 30, 018 1 Priority queues The ADT priority queue stores arbitrary objects with priorities. An object with the highest priority gets served first. Objects with priorities are defined
More informationSearching and Sorting (Savitch, Chapter 7.4)
Searching and Sorting (Savitch, Chapter 7.4) TOPICS Algorithms Complexity Binary Search Bubble Sort Insertion Sort Selection Sort What is an algorithm? A finite set of precise instruc6ons for performing
More informationOF VICTORIA EXAMINATIONS- DECEMBER 2010 CSC
Name: ID Number: UNIVERSITY OF VICTORIA EXAMINATIONS- DECEMBER 2010 CSC 225 - Algorithms and Data Structures: I Section A01 (CRN 1089) Instructor: Wendy Myrvold Duration: 3 hours TO BE ANSWERED ON THE
More information16. Searching and Sorting
16. Searching and Sorting Java Fall 2009 Instructor: Dr. Masoud Yaghini Searching and Sorting Outline Searching Arrays Sorting Arrays Arrays Class References Searching Arrays Searching Arrays Searching
More informationCSCI 261 Computer Science II
CSCI 261 Computer Science II Department of Mathematics and Computer Science ecture 10 Efficient Sorting Algorithms As If You Need More eminding... Search is one of the most frequently-used operations in
More informationSummer Final Exam Review Session August 5, 2009
15-111 Summer 2 2009 Final Exam Review Session August 5, 2009 Exam Notes The exam is from 10:30 to 1:30 PM in Wean Hall 5419A. The exam will be primarily conceptual. The major emphasis is on understanding
More informationPractical Session #11 - Sort properties, QuickSort algorithm, Selection
Practical Session #11 - Sort properties, QuickSort algorithm, Selection Quicksort quicksort( A, low, high ) if( high > low ) pivot partition( A, low, high ) // quicksort( A, low, pivot-1 ) quicksort( A,
More informationRecursion: The Beginning
Department of Computer Science and Engineering Chinese University of Hong Kong This lecture will introduce a useful technique called recursion. If used judiciously, this technique often leads to elegant
More informationWhat is an algorithm?
/0/ What is an algorithm? Searching and Sorting (Savitch, Chapter 7.) TOPICS Algorithms Complexity Binary Search Bubble Sort Insertion Sort Selection Sort A finite set of precise instrucons for performing
More informationCS 223: Data Structures and Programming Techniques. Exam 2. April 19th, 2012
CS 223: Data Structures and Programming Techniques. Exam 2 April 19th, 2012 Instructor: Jim Aspnes Work alone. Do not use any notes or books. You have approximately 75 minutes to complete this exam. Please
More informationYork University. AP/ITEC Section M INTRODUCTION TO DATA STRUCTURES Winter Midterm Test
York University AP/ITEC 2620 3.0 Section M INTRODUCTION TO DATA STRUCTURES Winter 2016 Midterm Test Examiner: S. Chen Duration: One Hour and 30 Minutes This exam is closed textbook(s) and closed notes.
More informationCOMP Data Structures
COMP 2140 - Data Structures Shahin Kamali Topic 5 - Sorting University of Manitoba Based on notes by S. Durocher. COMP 2140 - Data Structures 1 / 55 Overview Review: Insertion Sort Merge Sort Quicksort
More informationAlgorithms and Data Structures
Algorithms and Data Structures Dr. Malek Mouhoub Department of Computer Science University of Regina Fall 2002 Malek Mouhoub, CS3620 Fall 2002 1 6. Priority Queues 6. Priority Queues ffl ADT Stack : LIFO.
More informationTHE UNIVERSITY OF WESTERN AUSTRALIA
THE UNIVERSITY OF WESTERN AUSTRALIA MID SEMESTER EXAMINATION April 2018 DEPARTMENT OF COMPUTER SCIENCE & SOFTWARE ENGINEERING DATA STRUCTURES AND ALGORITHMS CITS2200 This Paper Contains: 6 Pages 10 Questions
More informationRecursion. Fundamentals of Computer Science
Recursion Fundamentals of Computer Science Outline Recursion A method calling itself All good recursion must come to an end A powerful tool in computer science Allows writing elegant and easy to understand
More informationCSC 222: Object-Oriented Programming. Fall 2015
CSC 222: Object-Oriented Programming Fall 2015 Searching and sorting sequential search vs. binary search algorithm analysis: big-oh, rate-of-growth O(N 2 ) sorts: insertion sort, selection sort 1 Searching
More informationObjectives. Recursion. One Possible Way. How do you look up a name in the phone book? Recursive Methods Must Eventually Terminate.
Objectives Recursion Chapter 11 become familiar with the idea of recursion learn to use recursion as a programming tool become familiar with the binary search algorithm as an example of recursion become
More informationCS 163 Practice Final Exam Winter 2012
CS 163 Practice Final Exam Winter 2012 The final exam is Saturday, 21 April. Any problem from either midterm or either practice midterm may (and often does) appear again on the final. In addition, make
More informationSorting and Selection
Sorting and Selection Introduction Divide and Conquer Merge-Sort Quick-Sort Radix-Sort Bucket-Sort 10-1 Introduction Assuming we have a sequence S storing a list of keyelement entries. The key of the element
More informationRecursion: The Beginning
Yufei Tao ITEE University of Queensland This lecture is the inception of a powerful technique called recursion. If used judiciously, this technique can simplify the design of an algorithm significantly,
More information08 A: Sorting III. CS1102S: Data Structures and Algorithms. Martin Henz. March 10, Generated on Tuesday 9 th March, 2010, 09:58
08 A: Sorting III CS1102S: Data Structures and Algorithms Martin Henz March 10, 2010 Generated on Tuesday 9 th March, 2010, 09:58 CS1102S: Data Structures and Algorithms 08 A: Sorting III 1 1 Recap: Sorting
More informationCSE 2123 Sorting. Jeremy Morris
CSE 2123 Sorting Jeremy Morris 1 Problem Specification: Sorting Given a list of values, put them in some kind of sorted order Need to know: Which order? Increasing? Decreasing? What does sorted order mean?
More informationSearching & Sorting in Java Bubble Sort
With the bubble sort, the basic idea is to compare adjacent values and exchange them if they are not in order. Consider the following example which shows the first pass through the algorithm. 1. Compare
More informationCSCI2100B Data Structures Heaps
CSCI2100B Data Structures Heaps Irwin King king@cse.cuhk.edu.hk http://www.cse.cuhk.edu.hk/~king Department of Computer Science & Engineering The Chinese University of Hong Kong Introduction In some applications,
More informationSorting. Quicksort analysis Bubble sort. November 20, 2017 Hassan Khosravi / Geoffrey Tien 1
Sorting Quicksort analysis Bubble sort November 20, 2017 Hassan Khosravi / Geoffrey Tien 1 Quicksort analysis How long does Quicksort take to run? Let's consider the best and the worst case These differ
More informationCSc 110, Spring 2017 Lecture 39: searching
CSc 110, Spring 2017 Lecture 39: searching 1 Sequential search sequential search: Locates a target value in a list (may not be sorted) by examining each element from start to finish. Also known as linear
More informationCSE 143 Sample Midterm Exam #4
CSE 143 Sample Midterm Exam #4 (based on Summer 2009's midterm; thanks to Alyssa Harding) 1. ArrayList Mystery. Consider the following method: public static void mystery4(arraylist list) { for
More informationComputer Science 136 Spring 2004 Professor Bruce. Final Examination May 19, 2004
Computer Science 136 Spring 2004 Professor Bruce Final Examination May 19, 2004 Question Points Score 1 10 2 8 3 15 4 12 5 12 6 8 7 10 TOTAL 65 Your name (Please print) I have neither given nor received
More information4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING
4.1 COMPUTATIONAL THINKING AND PROBLEM-SOLVING 4.1.2 ALGORITHMS ALGORITHM An Algorithm is a procedure or formula for solving a problem. It is a step-by-step set of operations to be performed. It is almost
More informationChapter 6. Repetition Statements. Animated Version The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Chapter 6 Repetition Statements Animated Version required for reproduction or display. Chapter 6-1 Objectives After you have read and studied this chapter, you should be able to Implement repetition control
More informationChapter 17 - Notes Recursion
Chapter 17 - Notes Recursion I. Recursive Definitions A. Recursion: The process of solving a problem by reducing it to smaller versions of itself. B. Recursive Function: A function that calls itself. C.
More informationSuppose we want to create a data structure called DataStore that has the following operations:
CompSci 100 Test 2 Fall 2010 Prof. Rodger Nov 18, 2010 Some common recurrence relations T(n) = T(n/2) +O(1) O(log n) T(n) = T(n/2) +O(n) O(n) T(n) = 2T(n/2) +O(1) O(n) T(n) = 2T(n/2) +O(n) O(n log n) T(n)
More informationAnnouncements. Recursion and why study it. Recursive programming. Recursion basic idea
Announcements Recursion and why study it Tutoring schedule updated Do you find the sessions helpful? Midterm exam 1: Tuesday, April 11, in class Scope: will cover up to recursion Closed book but one sheet,
More informationINFO1x05 Tutorial 6. Exercise 1: Heaps and Priority Queues
INFO1x05 Tutorial 6 Heaps and Priority Queues Exercise 1: 1. How long would it take to remove the log n smallest elements from a heap that contains n entries, using the operation? 2. Suppose you label
More informationPoints off Total off Net Score. CS 314 Final Exam Spring 2016
Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Spring 2016 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.
More informationEXAMINATIONS 2010 END YEAR. COMP103 Introduction to Data Structures and Algorithms SOLUTIONS
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON Student ID:....................... EXAMINATIONS 2010 END YEAR COMP103 Introduction to Data
More information106B Final Review Session. Slides by Sierra Kaplan-Nelson and Kensen Shi Livestream managed by Jeffrey Barratt
106B Final Review Session Slides by Sierra Kaplan-Nelson and Kensen Shi Livestream managed by Jeffrey Barratt Topics to Cover Sorting Searching Heaps and Trees Graphs (with Recursive Backtracking) Inheritance
More informationSorting Algorithms part 1
Sorting Algorithms part 1 1. Bubble sort Description Bubble sort is a simple sorting algorithm. It works by repeatedly stepping through the array to be sorted, comparing two items at a time, swapping these
More informationCSE wi: Practice Midterm
CSE 373 18wi: Practice Midterm Name: UW email address: Instructions Do not start the exam until told to do so. You have 80 minutes to complete the exam. This exam is closed book and closed notes. You may
More information8. Binary Search Tree
8 Binary Search Tree Searching Basic Search Sequential Search : Unordered Lists Binary Search : Ordered Lists Tree Search Binary Search Tree Balanced Search Trees (Skipped) Sequential Search int Seq-Search
More information