APCS :: Winter Quarter Exam Review Packet
|
|
- Blake Washington
- 5 years ago
- Views:
Transcription
1 APCS :: Winter Quarter Exam Review Packet O(n 2 ) Sorting algorithms. You should be able to derive the code for any of the three O(n 2 ) sorting algorithms in the following manner: 1. Assume you have the following method available to use: // swap method will swap the values at two given indices // within the ArrayList // Pre-Condition: param from and to are valid indices in A public void swap(arraylist<comparable> A, int from, int to) Write one of the following O(n 2 ) sorting algorithms. // I only give one here public void insertionsort(arraylist<comparable> A) for(int i=1; i<a.size(); i++) for(int j=i; j>=1; j--) if(a.get(j).compareto(a.get(j-1)<0) swap(a, j, j-1); else j = 0; //force inner-loop to quit public void selectionsort(arraylist<comparable> A) public void bubblesort(arraylist<comparable> A) 2. Given the starting array shown below fill in the empty arrays showing what the array looks like after each pass of the outer for-loop for the algorithm you wrote above: step Baker Franke 2007 APCS - 3/9/07 :: 1 of 8
2 O(n*lg n) Sorting Algorithms When writing recursive algorithms don t forget to consider the stopping case. 1. Assume you have the following methods at your disposal: public ArrayList<Comparable> split(arraylist<comparable> A, int from, int to) public ArrayList<Comparable> merge(arraylist<comparable> A, ArrayList<Comparable> B) Write the mergesort method which is declared for you below: public ArrayList<Comparable> mergesort(arraylist<comparable> A) if(a.size()==1) return A; ArrayList<Comparable> left = split(a, 0, A.size()/2); ArrayList<Comparable> right = split(a, A.size()/2, A.size()-1); left = mergesort(left); right = mergesort(right); return merge(left, right); 2. Draw a picture of Mergesort in action. Start with an array of 8 comparable elements and render each step of mergesort both on the way down and on the way up. <<split on the way down>> << merge on the way up>> Assume you have the following method at your disposal: // will partition A around some element in the range between Baker Franke 2007 APCS - 3/9/07 :: 2 of 8
3 // low and high, inclusive. It returns the index where the // partitioning element ended up. // The partitioning algorithm used should not be considered // at this time. public int partition(arraylist<comparable> A, int from, int to) Write the quicksort method which is started for you below: //performs quicksort on A between indices from and to, inclusive. public void quicksort(arraylist<comparable> A, int from, int to) if(from>=to) return; int p = partition(a, from, to); quicksort(a, from, p-1); quicksort(a, p+1, to); 4. Draw a picture of Quicksort in action. Start with an array of 8 comparable elements and render each step of quicksort in an illustrative way. << always choose first element of each section as partition element>> (Underlined values are ones in their final placement after partitioning.) Explain why mergesort has BEST and WORST case running time of O(n*lg n). Because the same process of splitting and merging happens no matter what order the array starts out in. 6. What is the worst case running time for Quicksort? Why? Worst case is O(n 2 ) if the partitioning element is chosen unwisely. For example, if the array is in order to begin with, and the partitioning element is chosen as the first element of each chunk to be sorted, the algorithm won t benefit from divide-and-conquer because it will recur on only one fewer element each step. This can be fixed by partitioning in such a way as to gauruntee worst-case behavior won t occur. i.e. for chunks larger than say 5 elements, choose to partition around the median of 3 random elements within the chunk. Baker Franke 2007 APCS - 3/9/07 :: 3 of 8
4 Comparators: 1. Consider a Person class that has the following public methods: String name() int age() int ssn() Write a Comparator for Person objects such that Person A is less than Person B if: A s name comes before B s name in dictionary order If the names are equivalent, A s age is greater than B s age If name and age are equivalent, A s ssn is less than B s ssn public class PersonComp extends Comparator<Person> public int compare(person A, Person B) int namecomp = A.getName().compareTo(A.getName()); if(namecomp!=0) return namecomp int agecomp = B.age() - A.age() ; //negative if A is older if(agecomp!=0) return agecomp; int ssncomp = A.ssn()-B.ssn(); // negative if A s ssn is less return ssncomp; 2. Assume you have a PersonComparator that comares Person objects the way you want. Write the sort method below using a PriorityQueue (java.util) to sort the Person objects in the given ArrayList: You may only use a PriorityQueue and the PersonComparator to do the sorting - no other data structures. The sorting should appear to happen in-place. // an in-place sort of A using compartor C. public void sort(arraylist<person> A, PersonComparator C) PriorityQueue<Person> PQ = new PriorityQueue<Person>(10, C); while(a.size()>0) PQ.add(A.remove(0)); while(pq.size()>0) A.add(PQ.remove()); 3. What is the Big-Oh Running time of the sort method described in 2? (This question can be answered regardless of whether you ve written an answer for 2 or not). The Big-Oh running time can be derived: O(n) for n removals from the ArrayList +O(n*lg n) for the n additions to the PQ + O(n*lg n) for the n removals from the PQ + O(n) for the n additions to the ArrayList Baker Franke 2007 APCS - 3/9/07 :: 4 of 8
5 = O(2n + 2(n*lg n) ) = O(n* lg n) Heaps: 1. Explain the rules of a Heap. Draw a picture of a valid Heap with 10 elements in it. A heap is a full binary tree where each node in the tree is less than or equal to both of its two children Write a recursive bubbleup method for a heap. Assume the heap stores the root at index 1 in the ArrayList. Read the comments for clues about how to write it. public class Heap private ArrayList<Comparable> myheap; // assume myheap is initialized properly by the constructor. // bubble up the value stored in index. // if index is the root, can t bubble up. // otherwise compare the element at index with its parent // and swap if necessary // then continue to bubble up as necessary. // Pre-condition: index < myheap.size() public int bubbleup(int index) if(index > 1 && myheap.get(index).compareto(myheap.get(index/2))<0) swap(a, index, index/2); bubbleup(index/2); else return index; Binary Tree Remember: A Binary Tree is not a Binary Search Tree, nor is it a heap. A Binary Tree is simply a tree where each node has at most two children. 1. Write a find method for an unordered binary tree. The method should traverse the tree looking for the value. // returns true if tofind is found somewhere in the tree, otherwise false. public boolean find(treenode t, Object tofind) if(t==null) return false; Baker Franke 2007 APCS - 3/9/07 :: 5 of 8
6 int compval = ((Comparable)toFind).compareTo(t.getValue()); if(compval==0) return true; else if(compval < 0) return find(t.getlef(), tofind); else return find(t.getright(), tofind); Binary Search Trees 0. You should feel comfortable about the basic BST methods we wrote in class (source code available on the website) add, find, traverse. 1. Write a recursive method to check that a binary tree is in proper binary search tree order. A Binary Search Tree is in proper order if, for some node n, it s value is greater than or equal to the value of its left child, and less than its right child, AND its left an right subtrees are in proper order. If a node has no children it is trivially in proper order. The method is started for you below (Careful! null pointer exceptions lurk in the shadows): public boolean confirmorder(treenode t) if(t==null) return true; // assume it s in order, set boolean to false if find it s not boolean nodeinorder = true; if(t.getleft()!=null && t.getleft().getvalue().compareto(t.getvalue())>0) nodeinorder = false; if(t.getright()!=null && t.getright().getvalue().compareto(t.getvalue())<0) nodeinorder = false; return nodeinorder && confirmorder(t.getleft()) && confirmorder(t.getright()); 2. Write a recursive method to find the height of a given node. A null node has a height of 0. Otherwise a node s height is given by: 1 + max of the heights of its left and right subtrees. public int height(treenode t) Baker Franke 2007 APCS - 3/9/07 :: 6 of 8
7 if(t==null) return 0; //or 1 depending on def. of height return 1 + Math.max( height(t.getleft()), height(t.getright() ); 3. Write a recursive method that determines whether a given node is in balance. A node is in balance if the heights of its two subtrees differ by at most 1. You may use the height method written in 2 to aid your cause. The method is started for you below: public boolean isbalanced(treenode t) int heightdiff = Math.abs(height(t.getLeft()) height(t.getright())); return heightdiff <= 1; 4. Write a method that finds the max node in a tree. The max node is the right-most node in a tree. public TreeNode maxnode(treenode t) TreeNode temp = t; while(temp.getright()!=null) temp = temp.getright(); return temp; ********* recursive version ********** if(t.getright()==null) return t; else return maxnode(t.getright()); 5. Write a method toarraylist which traverse a BST and returns an in-order ArrayList of all the values contained in the tree rooted at t. public void toarraylist(arraylist data, TreeNode t) if(t==null) return; toarraylist(data, t.getleft()); data.add(t.getvalue()); toarraylist(data, t.getright()); 6. Draw a picture of a valid Binary Search Tree that has at least 10 values. Then, choose a non-leaf node to remove, and redraw the tree having chosen a node to replace the one you removed. Then: 1.) Indicate how you chose the replacement node. 2.) Declare the Big-Oh running time of the removal operation you specified and drew. Baker Franke 2007 APCS - 3/9/07 :: 7 of 8
8 Big-Oh Stuff What are the Big-Oh running times of the methods shown below (you do not need to know what it does to derive the Big-Oh running time): 1. public void mystery(arraylist A) for(int i=0; i<a.size(); i++) for(int j=i; j<i+5; j++) A.set(i, A.get(i)+j); mystery method has a running time complexity of O(n). The inner for-loop is a red herring. It always runs exactly 5 times. Therefore it is unrelated to the size of the problem and is considered a constant factor. 2. public void mystery2(arraylist A) for(int i=0; i<a.size(); i++) for(int j=0; j<i/2; j++) A.set(i, A.get(i)+j); mystery2 has a running time complexity of O(n 2 ). The inner loop runs a number of times related to i. Therefore the inner-loop is related to the size of the problem so it must be considered as a multiplicative factor. 3. Below is (somewhat bizarre) strategy for calculating the sum of all the ints in an array of ints. First, state how the method works. Second, state its Big-Oh running time. public int sum(int[] list, int lo, int hi) if(lo>hi) return 0; if(lo==hi) return list[hi]; return sum(list, lo, hi/2) + sum(list, hi/2+1, hi); sum has a running time complexity of O(n). This one is tricky. The unreduced complexity could be stated as O(lg n + n). Clearly there are lg n levels to the recursion. But if you actually count the number of additions performed it s proportional to n. Baker Franke 2007 APCS - 3/9/07 :: 8 of 8
CS134 Spring 2005 Final Exam Mon. June. 20, 2005 Signature: Question # Out Of Marks Marker Total
CS134 Spring 2005 Final Exam Mon. June. 20, 2005 Please check your tutorial (TUT) section from the list below: TUT 101: F 11:30, MC 4042 TUT 102: M 10:30, MC 4042 TUT 103: M 11:30, MC 4058 TUT 104: F 10:30,
More informationSorted Arrays. Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min
Binary Search Trees FRIDAY ALGORITHMS Sorted Arrays Operation Access Search Selection Predecessor Successor Output (print) Insert Delete Extract-Min 6 10 11 17 2 0 6 Running Time O(1) O(lg n) O(1) O(1)
More informationCSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators)
Name: Email address: Quiz Section: CSE 332 Autumn 2013: Midterm Exam (closed book, closed notes, no calculators) Instructions: Read the directions for each question carefully before answering. We will
More informationSorting. Popular algorithms: Many algorithms for sorting in parallel also exist.
Sorting Popular algorithms: Selection sort* Insertion sort* Bubble sort* Quick sort* Comb-sort Shell-sort Heap sort* Merge sort* Counting-sort Radix-sort Bucket-sort Tim-sort Many algorithms for sorting
More informationName Section Number. CS210 Exam #3 *** PLEASE TURN OFF ALL CELL PHONES*** Practice
Name Section Number CS210 Exam #3 *** PLEASE TURN OFF ALL CELL PHONES*** Practice All Sections Bob Wilson OPEN BOOK / OPEN NOTES: You will have all 90 minutes until the start of the next class period.
More informationLecture 5: Sorting Part A
Lecture 5: Sorting Part A Heapsort Running time O(n lg n), like merge sort Sorts in place (as insertion sort), only constant number of array elements are stored outside the input array at any time Combines
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 informationTrees. Eric McCreath
Trees Eric McCreath 2 Overview In this lecture we will explore: general trees, binary trees, binary search trees, and AVL and B-Trees. 3 Trees Trees are recursive data structures. They are useful for:
More informationPRIORITY QUEUES AND HEAPS
10//1 Reminder: A Collision Detection Due tonight by midnight PRIORITY QUEUES AND HEAPS Lecture 1 CS10 Fall 01 3 Readings and Homework Read Chapter A Heap Implementation to learn about heaps Exercise:
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 informationQuickSort
QuickSort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 1 QuickSort QuickSort on an input sequence S with n elements consists of three steps: n n n Divide: partition S into two sequences S 1 and S 2 of about
More informationCS 61B Summer 2005 (Porter) Midterm 2 July 21, SOLUTIONS. Do not open until told to begin
CS 61B Summer 2005 (Porter) Midterm 2 July 21, 2005 - SOLUTIONS Do not open until told to begin This exam is CLOSED BOOK, but you may use 1 letter-sized page of notes that you have created. Problem 0:
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 informationOverview of Sorting Algorithms
Unit 7 Sorting s Simple Sorting algorithms Quicksort Improving Quicksort Overview of Sorting s Given a collection of items we want to arrange them in an increasing or decreasing order. You probably have
More informationINF2220: algorithms and data structures Series 1
Universitetet i Oslo Institutt for Informatikk A. Maus, R.K. Runde, I. Yu INF2220: algorithms and data structures Series 1 Topic Trees & estimation of running time (Exercises with hints for solution) Issued:
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 information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees (& Heaps) Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Spring 2015 Jill Seaman 1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root -
More informationData Structures and Algorithms
Data Structures and Algorithms CS245-2008S-19 B-Trees David Galles Department of Computer Science University of San Francisco 19-0: Indexing Operations: Add an element Remove an element Find an element,
More informationCSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting. Dan Grossman Fall 2013
CSE373: Data Structure & Algorithms Lecture 18: Comparison Sorting Dan Grossman Fall 2013 Introduction to Sorting Stacks, queues, priority queues, and dictionaries all focused on providing one element
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 informationData Structures and Algorithms Chapter 4
Data Structures and Algorithms Chapter. About sorting algorithms. Heapsort Complete binary trees Heap data structure. Quicksort a popular algorithm very fast on average Previous Chapter Divide and conquer
More informationData Structures Brett Bernstein
Data Structures Brett Bernstein Final Review 1. Consider a binary tree of height k. (a) What is the maximum number of nodes? (b) What is the maximum number of leaves? (c) What is the minimum number of
More informationChapter 20: Binary Trees
Chapter 20: Binary Trees 20.1 Definition and Application of Binary Trees Definition and Application of Binary Trees Binary tree: a nonlinear linked list in which each node may point to 0, 1, or two other
More informationOutline. An Application: A Binary Search Tree. 1 Chapter 7: Trees. favicon. CSI33 Data Structures
Outline Chapter 7: Trees 1 Chapter 7: Trees Approaching BST Making a decision We discussed the trade-offs between linked and array-based implementations of sequences (back in Section 4.7). Linked lists
More informationAlgorithms and Data Structures (INF1) Lecture 7/15 Hua Lu
Algorithms and Data Structures (INF1) Lecture 7/15 Hua Lu Department of Computer Science Aalborg University Fall 2007 This Lecture Merge sort Quick sort Radix sort Summary We will see more complex techniques
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 informationCS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics
CS2223: Algorithms Sorting Algorithms, Heap Sort, Linear-time sort, Median and Order Statistics 1 Sorting 1.1 Problem Statement You are given a sequence of n numbers < a 1, a 2,..., a n >. You need to
More informationCPSC 311 Lecture Notes. Sorting and Order Statistics (Chapters 6-9)
CPSC 311 Lecture Notes Sorting and Order Statistics (Chapters 6-9) Acknowledgement: These notes are compiled by Nancy Amato at Texas A&M University. Parts of these course notes are based on notes from
More informationUnit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION
DESIGN AND ANALYSIS OF ALGORITHMS Unit 6 Chapter 15 EXAMPLES OF COMPLEXITY CALCULATION http://milanvachhani.blogspot.in EXAMPLES FROM THE SORTING WORLD Sorting provides a good set of examples for analyzing
More informationUses for Trees About Trees Binary Trees. Trees. Seth Long. January 31, 2010
Uses for About Binary January 31, 2010 Uses for About Binary Uses for Uses for About Basic Idea Implementing Binary Example: Expression Binary Search Uses for Uses for About Binary Uses for Storage Binary
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 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 informationO(n): printing a list of n items to the screen, looking at each item once.
UNIT IV Sorting: O notation efficiency of sorting bubble sort quick sort selection sort heap sort insertion sort shell sort merge sort radix sort. O NOTATION BIG OH (O) NOTATION Big oh : the function f(n)=o(g(n))
More informationCSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting. Aaron Bauer Winter 2014
CSE373: Data Structure & Algorithms Lecture 21: More Comparison Sorting Aaron Bauer Winter 2014 The main problem, stated carefully For now, assume we have n comparable elements in an array and we want
More information! Tree: set of nodes and directed edges. ! Parent: source node of directed edge. ! Child: terminal node of directed edge
Trees & Heaps Week 12 Gaddis: 20 Weiss: 21.1-3 CS 5301 Fall 2018 Jill Seaman!1 Tree: non-recursive definition! Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every
More informationTable ADT and Sorting. Algorithm topics continuing (or reviewing?) CS 24 curriculum
Table ADT and Sorting Algorithm topics continuing (or reviewing?) CS 24 curriculum A table ADT (a.k.a. Dictionary, Map) Table public interface: // Put information in the table, and a unique key to identify
More informationCS102 Binary Search Trees
CS102 Binary Search Trees Prof Tejada 1 To speed up insertion, removal and search, modify the idea of a Binary Tree to create a Binary Search Tree (BST) Binary Search Trees Binary Search Trees have one
More informationThe beautiful binary heap.
The beautiful binary heap. Weiss has a chapter on the binary heap - chapter 20, pp581-601. It s a very neat implementation of the binary tree idea, using an array. We can use the binary heap to sort an
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 informationNext. 1. Covered basics of a simple design technique (Divideand-conquer) 2. Next, more sorting algorithms.
Next 1. Covered basics of a simple design technique (Divideand-conquer) Ch. 2 of the text. 2. Next, more sorting algorithms. Sorting Switch from design paradigms to applications. Sorting and order statistics
More informationHow much space does this routine use in the worst case for a given n? public static void use_space(int n) { int b; int [] A;
How much space does this routine use in the worst case for a given n? public static void use_space(int n) { int b; int [] A; } if (n
More informationFinal Exam in Algorithms and Data Structures 1 (1DL210)
Final Exam in Algorithms and Data Structures 1 (1DL210) Department of Information Technology Uppsala University February 0th, 2012 Lecturers: Parosh Aziz Abdulla, Jonathan Cederberg and Jari Stenman Location:
More informationTreaps. 1 Binary Search Trees (BSTs) CSE341T/CSE549T 11/05/2014. Lecture 19
CSE34T/CSE549T /05/04 Lecture 9 Treaps Binary Search Trees (BSTs) Search trees are tree-based data structures that can be used to store and search for items that satisfy a total order. There are many types
More informationCS301 - Data Structures Glossary By
CS301 - Data Structures Glossary By Abstract Data Type : A set of data values and associated operations that are precisely specified independent of any particular implementation. Also known as ADT Algorithm
More informationCS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych
CS125 : Introduction to Computer Science Lecture Notes #38 and #39 Quicksort c 2005, 2003, 2002, 2000 Jason Zych 1 Lectures 38 and 39 : Quicksort Quicksort is the best sorting algorithm known which is
More informationCOSC 2007 Data Structures II Final Exam. Part 1: multiple choice (1 mark each, total 30 marks, circle the correct answer)
COSC 2007 Data Structures II Final Exam Thursday, April 13 th, 2006 This is a closed book and closed notes exam. There are total 3 parts. Please answer the questions in the provided space and use back
More informationComputer Science 210 Data Structures Siena College Fall Topic Notes: Priority Queues and Heaps
Computer Science 0 Data Structures Siena College Fall 08 Topic Notes: Priority Queues and Heaps Heaps and Priority Queues From here, we will look at some ways that trees are used in other structures. First,
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 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 informationChapter 7 Sorting. Terminology. Selection Sort
Chapter 7 Sorting Terminology Internal done totally in main memory. External uses auxiliary storage (disk). Stable retains original order if keys are the same. Oblivious performs the same amount of work
More informationTest 1: CPS 100. Owen Astrachan. February 23, 2000
Test 1: CPS 100 Owen Astrachan February 23, 2000 Name: Login: Honor code acknowledgment (signature) Problem 1 value 19 pts. grade Problem 2 24 pts. Problem 3 8 pts. Problem 4 9 pts. Problem 5 6 pts. TOTAL:
More information1. Covered basics of a simple design technique (Divideand-conquer) 2. Next, more sorting algorithms.
Next 1. Covered basics of a simple design technique (Divideand-conquer) Ch. 2 of the text. 2. Next, more sorting algorithms. Sorting Switch from design paradigms to applications. Sorting and order statistics
More informationCS 2604 Data Structures Midterm Summer 2000 U T. Do not start the test until instructed to do so!
VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Instructions: Print your name in the space provided below. This examination is closed book and closed notes. No calculators or other computing
More informationSorting: Given a list A with n elements possessing a total order, return a list with the same elements in non-decreasing order.
Sorting The sorting problem is defined as follows: Sorting: Given a list A with n elements possessing a total order, return a list with the same elements in non-decreasing order. Remember that total order
More informationSuppose that the following is from a correct C++ program:
All multiple choice questions are equally weighted. You can generally assume that code shown in the questions is intended to be syntactically correct, unless something in the question or one of the answers
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 11: Binary Search Trees MOUNA KACEM mouna@cs.wisc.edu Fall 2018 General Overview of Data Structures 2 Introduction to trees 3 Tree: Important non-linear data structure
More informationModule 4: Index Structures Lecture 13: Index structure. The Lecture Contains: Index structure. Binary search tree (BST) B-tree. B+-tree.
The Lecture Contains: Index structure Binary search tree (BST) B-tree B+-tree Order file:///c /Documents%20and%20Settings/iitkrana1/My%20Documents/Google%20Talk%20Received%20Files/ist_data/lecture13/13_1.htm[6/14/2012
More informationBinary Trees and Binary Search Trees
Binary Trees and Binary Search Trees Learning Goals After this unit, you should be able to... Determine if a given tree is an instance of a particular type (e.g. binary, and later heap, etc.) Describe
More informationCSE 373 MAY 24 TH ANALYSIS AND NON- COMPARISON SORTING
CSE 373 MAY 24 TH ANALYSIS AND NON- COMPARISON SORTING ASSORTED MINUTIAE HW6 Out Due next Wednesday ASSORTED MINUTIAE HW6 Out Due next Wednesday Only two late days allowed ASSORTED MINUTIAE HW6 Out Due
More informationCISC 621 Algorithms, Midterm exam March 24, 2016
CISC 621 Algorithms, Midterm exam March 24, 2016 Name: Multiple choice and short answer questions count 4 points each. 1. The algorithm we studied for median that achieves worst case linear time performance
More information1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1
Asymptotics, Recurrence and Basic Algorithms 1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1 2. O(n) 2. [1 pt] What is the solution to the recurrence T(n) = T(n/2) + n, T(1)
More informationBinary Search Trees Treesort
Treesort CS 311 Data Structures and Algorithms Lecture Slides Friday, November 13, 2009 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 2005 2009
More informationDO NOT. UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N.
CS61B Fall 2011 UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division Test #2 Solutions P. N. Hilfinger 1. [3 points] Consider insertion sort, merge
More informationProgramming II (CS300)
1 Programming II (CS300) Chapter 12: Sorting Algorithms MOUNA KACEM mouna@cs.wisc.edu Spring 2018 Outline 2 Last week Implementation of the three tree depth-traversal algorithms Implementation of the BinarySearchTree
More informationSorting is a problem for which we can prove a non-trivial lower bound.
Sorting The sorting problem is defined as follows: Sorting: Given a list a with n elements possessing a total order, return a list with the same elements in non-decreasing order. Remember that total order
More informationCOMP : Trees. COMP20012 Trees 219
COMP20012 3: Trees COMP20012 Trees 219 Trees Seen lots of examples. Parse Trees Decision Trees Search Trees Family Trees Hierarchical Structures Management Directories COMP20012 Trees 220 Trees have natural
More informationComputer Science 302 Spring 2007 Practice Final Examination: Part I
Computer Science 302 Spring 2007 Practice Final Examination: Part I Name: This practice examination is much longer than the real final examination will be. If you can work all the problems here, you will
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 information1/ COP 3503 FALL 2012 SHAYAN JAVED LECTURE 16. Programming Fundamentals using Java
1/ 137 1 COP 3503 FALL 2012 SHAYAN JAVED LECTURE 16 Programming Fundamentals using Java 2/ 137 Sorting Another crucial problem. Used everywhere: Sorting numbers (prices/grades/ratings/etc..) Names Dates
More informationLecture 15 Binary Search Trees
Lecture 15 Binary Search Trees 15-122: Principles of Imperative Computation (Fall 2017) Frank Pfenning, André Platzer, Rob Simmons, Iliano Cervesato In this lecture, we will continue considering ways to
More informationCS 151 Name Final Exam December 17, 2014
Note that there are 10 equally-weighted qeustions. CS 151 Name Final Exam December 17, 2014 1. [20 points] Here is a list of data: 4 2 18 1 3 7 9 0 5. For each of the following structures I will walk through
More informationSample Exam 1 Questions
CSE 331 Sample Exam 1 Questions Name DO NOT START THE EXAM UNTIL BEING TOLD TO DO SO. If you need more space for some problem, you can link to extra space somewhere else on this exam including right here.
More informationDay 10. COMP1006/1406 Summer M. Jason Hinek Carleton University
Day 10 COMP1006/1406 Summer 2016 M. Jason Hinek Carleton University today s agenda assignments Only the Project is left! Recursion Again Efficiency 2 last time... recursion... binary trees... 3 binary
More informationData Structures and Algorithms Week 4
Data Structures and Algorithms Week. About sorting algorithms. Heapsort Complete binary trees Heap data structure. Quicksort a popular algorithm very fast on average Previous Week Divide and conquer Merge
More informationTrees 2: Linked Representation, Tree Traversal, and Binary Search Trees
Trees 2: Linked Representation, Tree Traversal, and Binary Search Trees Linked representation of binary tree Again, as with linked list, entire tree can be represented with a single pointer -- in this
More informationWe have the pointers reference the next node in an inorder traversal; called threads
Leaning Objective: In this Module you will be learning the following: Threaded Binary Tree Introduction: Threaded Binary Tree is also a binary tree in which all left child pointers that are NULL (in Linked
More informationTree: non-recursive definition. Trees, Binary Search Trees, and Heaps. Tree: recursive definition. Tree: example.
Trees, Binary Search Trees, and Heaps CS 5301 Fall 2013 Jill Seaman Tree: non-recursive definition Tree: set of nodes and directed edges - root: one node is distinguished as the root - Every node (except
More information(b) int count = 0; int i = 1; while (i<m) { for (int j=i; j<n; j++) { count = count + 1; i = i + 1; O(M + N 2 ) (c) int count = 0; int i,j,k; for (i=1
CPS 100 Exam 2 Solutions Spring 199 Dr Rodger 1 (3 pts) A virtual function in C++ is bound dynamically or statically? dynamic 2 (3 pts) When does one use a class template in C++? Templates are used to
More informationCSE 214 Computer Science II Heaps and Priority Queues
CSE 214 Computer Science II Heaps and Priority Queues Spring 2018 Stony Brook University Instructor: Shebuti Rayana shebuti.rayana@stonybrook.edu http://www3.cs.stonybrook.edu/~cse214/sec02/ Introduction
More informationReferences and Homework ABSTRACT DATA TYPES; LISTS & TREES. Abstract Data Type (ADT) 9/24/14. ADT example: Set (bunch of different values)
9// References and Homework Text: Chapters, and ABSTRACT DATA TYPES; LISTS & TREES Homework: Learn these List methods, from http://docs.oracle.com/javase/7/docs/api/java/util/list.html add, addall, contains,
More informationAdvanced Java Concepts Unit 5: Trees. Notes and Exercises
Advanced Java Concepts Unit 5: Trees. Notes and Exercises A Tree is a data structure like the figure shown below. We don t usually care about unordered trees but that s where we ll start. Later we will
More informationPRIORITY QUEUES AND HEAPS
10//1 Readings and Homework Read Chapter A Heap Implementation to learn about heaps PRIORITY QUEUES AND HEAPS Lecture 17 CS10 Fall 01 Exercise: Salespeople often make matrices that show all the great features
More informationBasic Data Structures (Version 7) Name:
Prerequisite Concepts for Analysis of Algorithms Basic Data Structures (Version 7) Name: Email: Concept: mathematics notation 1. log 2 n is: Code: 21481 (A) o(log 10 n) (B) ω(log 10 n) (C) Θ(log 10 n)
More informationCompsci 100. Owen Astrachan April 14, 2010
Compsci 100 Owen Astrachan April 14, 2010 Name: Login: Honor code acknowledgment (signature) Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 TOTAL: value 10 pts. 24 pts. 22 pts. 16 pts. 16 pts. 88 pts.
More informationFigure 1: A complete binary tree.
The Binary Heap A binary heap is a data structure that implements the abstract data type priority queue. That is, a binary heap stores a set of elements with a total order (that means that every two elements
More informationNET/JRF-COMPUTER SCIENCE & APPLICATIONS. Time: 01 : 00 Hour Date : M.M. : 50
1 NET/JRF-COMPUTER SCIENCE & APPLICATIONS UNIT TEST : DATA STRUCTURE Time: 01 : 00 Hour Date : 02-06-2017 M.M. : 50 INSTRUCTION: Attempt all the 25 questions. Each question carry TWO marks. 1. Consider
More informationSolutions to Exam Data structures (X and NV)
Solutions to Exam Data structures X and NV 2005102. 1. a Insert the keys 9, 6, 2,, 97, 1 into a binary search tree BST. Draw the final tree. See Figure 1. b Add NIL nodes to the tree of 1a and color it
More informationCS 310 Advanced Data Structures and Algorithms
CS 310 Advanced Data Structures and Algorithms Sorting June 13, 2017 Tong Wang UMass Boston CS 310 June 13, 2017 1 / 42 Sorting One of the most fundamental problems in CS Input: a series of elements with
More informationUNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division. P. N. Hilfinger.
UNIVERSITY OF CALIFORNIA Department of Electrical Engineering and Computer Sciences Computer Science Division CS61B Fall 2015 P. N. Hilfinger Test #2 READ THIS PAGE FIRST. Please do not discuss this exam
More informationCOMP 250 Fall Solution - Homework #4
COMP 250 Fall 2013 - Solution - Homework #4 1) // Evaluates a single operation static public double apply(string op, double x1, double x2) { if (op.equals("add")) return x1+x2; if (op.equals("mult")) return
More informationPriority Queues Heaps Heapsort
Priority Queues Heaps Heapsort After this lesson, you should be able to apply the binary heap insertion and deletion algorithms by hand implement the binary heap insertion and deletion algorithms explain
More informationTest 2: CPS 100. Owen Astrachan. November 10, 2004
Test 2: CPS 100 Owen Astrachan November 10, 2004 Name: Login: Honor code acknowledgment (signature) Problem 1 value 22 pts. grade Problem 2 20 pts. Problem 3 22 pts. TOTAL: 64 pts. This test has 14 pages,
More informationCOMP 250 Fall Homework #4
COMP 250 Fall 2006 - Homework #4 1) (35 points) Manipulation of symbolic expressions See http://www.mcb.mcgill.ca/~blanchem/250/hw4/treenodesolution.java 2) (10 points) Binary search trees Consider a binary
More informationCMPSCI 187: Programming With Data Structures. Lecture #34: Efficient Sorting Algorithms David Mix Barrington 3 December 2012
CMPSCI 187: Programming With Data Structures Lecture #34: Efficient Sorting Algorithms David Mix Barrington 3 December 2012 Efficient Sorting Algorithms Sorting With O(n log n) Comparisons Merge Sort The
More informationEECS 311 Data Structures Midterm Exam Don t Panic!
April 5, 7 EECS Data Structures Midterm Exam Don t Panic!. ( pts) In each box below, show the AVL trees that result from the successive addition of the given elements. Show the nodes, links and balance
More informationBalanced Binary Search Trees. Victor Gao
Balanced Binary Search Trees Victor Gao OUTLINE Binary Heap Revisited BST Revisited Balanced Binary Search Trees Rotation Treap Splay Tree BINARY HEAP: REVIEW A binary heap is a complete binary tree such
More informationTables, Priority Queues, Heaps
Tables, Priority Queues, Heaps Table ADT purpose, implementations Priority Queue ADT variation on Table ADT Heaps purpose, implementation heapsort EECS 268 Programming II 1 Table ADT A table in generic
More informationTrees 2: Linked Representation, Tree Traversal, and Binary Search Trees
Trees 2: Linked Representation, Tree Traversal, and Binary Search Trees Linked representation of binary tree Again, as with linked list, entire tree can be represented with a single pointer -- in this
More informationEXAMINATIONS 2015 COMP103 INTRODUCTION TO DATA STRUCTURES AND ALGORITHMS
T E W H A R E W Ā N A N G A O T E Student ID:....................... Ū 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 2015 TRIMESTER 2 COMP103 INTRODUCTION
More informationYou must print this PDF and write your answers neatly by hand. You should hand in the assignment before recitation begins.
15-122 Homework 5 Page 1 of 15 15-122 : Principles of Imperative Computation, Summer 1 2014 Written Homework 5 Due: Thursday, June 19 before recitation Name: Andrew ID: Recitation: Binary search trees,
More information