CSE 638: Advanced Algorithms. Lectures 18 & 19 ( Cache-efficient Searching and Sorting )
|
|
- Caitlin Potter
- 5 years ago
- Views:
Transcription
1 CSE 638: Advanced Algorithms Lectures 18 & 19 ( Cache-efficient Searching and Sorting ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2013
2 Searching ( Static B-Trees )
3 A Static Search Tree h ( n) = Θ log 2 degree: 2 A perfectly balanced binary search tree Static: no insertions or deletions Height of the tree, Θ log
4 A Static Search Tree a search path h ( n) = Θ log 2 A perfectly balanced binary search tree Static: no insertions or deletions Height of the tree, Θ log A search pathvisits O nodes, and incurs O O log I/Os
5 I/O-Efficient Static B-Trees h = Θ ( n) log B B + 1 Each node stores Bkeys, and has degree B+ 1 Height of the tree, Θ log
6 I/O-Efficient Static B-Trees a search path h = Θ ( n) log B B + 1 Each node stores Bkeys, and has degree B+ 1 Height of the tree, Θ log A search pathvisits O nodes, and incurs O O log I/Os
7 Cache-Oblivious Static B-Trees?
8 van Emde Boas Layout h a binary search tree
9 van Emde Boas Layout A h / 2 h B 1 B k h / 2 a binary search tree A B 1 B 2 B k If the tree contains nodes, each subtreecontains Θ 2 / Θ nodes, and Θ.
10 van Emde Boas Layout A h / 2 h B 1 B k h / 2 A B 1 B 2 a binary search tree B k Recursive Subdivision If the tree contains nodes, each subtreecontains Θ 2 / Θ nodes, and Θ.
11 van Emde Boas Layout A h / 2 h B 1 B k h / 2 A B 1 B 2 a binary search tree B k Recursive Subdivision If the tree contains nodes, each subtreecontains Θ 2 / Θ nodes, and Θ.
12 van Emde Boas Layout A h / 2 h B 1 B k h / 2 A B 1 B 2 a binary search tree B k Recursive Subdivision If the tree contains nodes, each subtreecontains Θ 2 / Θ nodes, and Θ.
13 van Emde Boas Layout A h / 2 h B 1 B k h / 2 A B 1 B 2 a binary search tree B k Recursive Subdivision If the tree contains nodes, each subtreecontains Θ 2 / Θ nodes, and Θ.
14 I/O-Complexity of a Search The height of the tree is log Each has height between log & log. Each spans at most 2 blocks of size.
15 I/O-Complexity of a Search a search path The height of the tree is log Each has height between log & log. Each spans at most 2 blocks of size. p= number of s visited by a search path Then log, and 2log The number of blocks transferred is 22log 4log
16 Sorting ( Mergesort )
17 Merge Sort Merge-Sort ( A, p, r ) { sort the elements in A[ p r ] } 1. if p < r then 2. q ( p + r ) / 2 3. Merge-Sort ( A, p, q ) 4. Merge-Sort ( A, q + 1, r ) 5. Merge ( A, p, q, r )
18 Merging k Sorted Sequences 2sorted sequences,,, stored in external memory for 1 is the length of the merged sequence ( initially empty ) will be stored in external memory Cache must be large enough to store one block from each one block from Thus 1
19 Merging k Sorted Sequences Let B i be the cache block associated with, and let Bbe the block associated with ( initially all empty ) Whenever a B i is empty fill it up with the next block from Keep transferring the next smallest element among all B i sto B Whenever B becomes full, empty it by appending it to In the Ideal Cache Modelthe block emptying and replacements will happen automatically cache-oblivious merging I/O Complexity Reading : #block transfers 2 Writing : #block transfers 1 Total #block transfers 1 2 O
20 Cache-Oblivious 2-Way Merge Sort Merge-Sort ( A, p, r ) { sort the elements in A[ p r ] } 1. if p < r then 2. q ( p + r ) / 2 3. Merge-Sort ( A, p, q ) 4. Merge-Sort ( A, q + 1, r ) 5. Merge ( A, p, q, r ) I/O Complexity: Ο 1,, 2 2 Ο 1,. Ο log How to improve this bound?
21 Cache-Oblivious k-way Merge Sort I/O Complexity: Ο 1,, Ο,. Ο log How large can be? Recall that for -way merging, we must ensure 1 1
22 Cache-Aware -Way Merge Sort I/O Complexity: Ο 1,, Ο,. Ο log Using 1, we get: Ο 1 log Ο log
23 Sorting ( Funnelsort )
24 k-merger ( k-funnel ) linking buffers ( each of size 2 ) 2sorted input sequences one merged output sequence -merger ( one ) Memory layout of a -merger: -mergers ( of them )
25 k-merger ( k-funnel ) Space usage of a -merger: Θ 1, 2, 1 Θ,. Θ A -merger occupies Θ contiguous locations.
26 k-merger ( k-funnel ) Each invocation of a -merger produces a sorted sequence of length incurs Ο 1 log cache misses provided Ω
27 k-merger ( k-funnel ) Cache-complexity: Ο 1,, 2 2 Θ,. Ο log, provided Ω
28 k-merger ( k-funnel ) : Ο 1 Let be #items extracted the -thinput queue. Then Ο. Since and Ω, at least for the input buffers. Ω cache blocks are available Hence, #cache-misses for accessing the input queues (assuming circular buffers) Ο 1 Ο
29 k-merger ( k-funnel ) : Ο 1 #cache-misses for accessing the input queues Ο #cache-misses for writing the output queue Ο 1 #cache-misses for touching the internal data structures Ο 1 Hence, total #cache-misses Ο 1
30 k-merger ( k-funnel ) : 2 2 Θ Each call to outputs items. So, #times merger is called Each call to an puts items into. Since items are output, and the buffer space is 2 2,#times the s are called 2 Before each call to, the merger must check each for emptiness, and thus incurring Ο cache-misses. So, #such cache-misses Ο Ο
31 Funnelsort Split the input sequence of length into contiguous subsequences,,, Recursively sort each subsequence of length each Merge the sorted subsequences using a -merger Cache-complexity: Ο 1,,,. Ο 1,, Ο log,. Ο 1 log
32 Sorting ( Distribution Sort )
33 Cache-Oblivious Distribution Sort Step 1: Partition, and recursively sort partitions. Step 2: Distribute partitions into buckets. Step 3: Recursively sort buckets.
34 Step 1: Partition & Recursively Sort Partitions Partitioned Recursively Sorted n sub-arrays n elements Order: Figure Source: Adapted from figures drawn by Piyush Kumar (2003), FSU
35 Step 2: Distribute to Buckets Recursively Sorted Distributed to Buckets A : 1 A : 2 A : 3 B : 1 B : 2 B 3 : A n : B q : n elements Number of buckets, Number of elements in 2 max min Figure Source: Adapted from figures drawn by Piyush Kumar (2003), FSU
36 Step 3: Recursively Sort Buckets B : 1 B : 2 B 3 : Recursively Sort Each Bucket B q : Done! Figure Source: Adapted from figures drawn by Piyush Kumar (2003), FSU
37 Distribution Sort Step 1: Partition, and recursively sort partitions. Step 2: Distribute partitions into buckets. Step 3: Recursively sort buckets.
38 Distribution Sort Step 1: Partition, and recursively sort partitions. Step 2: Distribute partitions into buckets. Step 3: Recursively sort buckets.
39 The Distribution Step Sorted Partitions Buckets A 1 A 2 A 3 B 1 B 2 B 3 A n We can take the partitions one by one, and distribute all elements of current partition to buckets Has very poorcache performance: upto Θ Θ cache-misses Figure Source: Adapted from figures drawn by Piyush Kumar (2003), FSU B q
40 Sorted Partitions Recursive Distribution Buckets A 1 A 2 A 3 B 1 B 2 B 3 A n B n [ A i,, A i + m 1 ] [ B j,, B j + m 1 ] Distribute (i, j, m ) 1. if m = 1 thencopy elements from A i to B j 2. else 3. Distribute ( i, j, m / 2 ) 4. Distribute ( i + m / 2, j, m / 2 ) 5. Distribute ( i, j + m / 2, m / 2 ) 6. Distribute ( i + m / 2, j + m / 2, m / 2 ) may need to split to maintain 2
41 Recursive Distribution Distribute (i, j, m ) 1. if m = 1 thencopy elements from A i to B j 2. else 3. Distribute ( i, j, m / 2 ) 4. Distribute ( i+ m / 2, j, m / 2 ) 5. Distribute ( i, j + m / 2, m / 2 ) 6. Distribute ( i + m / 2, j + m / 2, m / 2 ) ignore the cost of splits for the time being Let, denote the cache misses incurred by Distribute ( i, j, m) that copies elements from mpartitions to buckets. Then Ο,,, 2,,,. Ο, Ο
42 Recursive Distribution Distribute (i, j, m ) 1. if m = 1 thencopy elements from A i to B j 2. else 3. Distribute ( i, j, m / 2 ) 4. Distribute ( i+ m / 2, j, m / 2 ) 5. Distribute ( i, j + m / 2, m / 2 ) 6. Distribute ( i + m / 2, j + m / 2, m / 2 ) ignore the cost of splits for the time being
43 Recursive Distribution Distribute (i, j, m ) 1. if m = 1 thencopy elements from A i to B j 2. else 3. Distribute ( i, j, m / 2 ) 4. Distribute ( i+ m / 2, j, m / 2 ) 5. Distribute ( i, j + m / 2, m / 2 ) 6. Distribute ( i + m / 2, j + m / 2, m / 2 ) #cache-misses incurred by all splits Ο Ο Cache-complexity of Distribute( 1,1, ) is, Ο Ο
44 Cache-Complexity of Distribution Sort Step 1:Partition into sub-arrays containing elements each and sort the sub-arrays recursively. Step 2:Distribute sub-arrays into buckets,,,. Step 3: Recursively sort the buckets. Cache-complexity of Distribution Sort: Ο 1,, Ο 1,. Ο 1 log, Ω
CSE 613: Parallel Programming. Lecture 6 ( Basic Parallel Algorithmic Techniques )
CSE 613: Parallel Programming Lecture 6 ( Basic Parallel Algorithmic Techniques ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2017 Some Basic Techniques 1. Divide-and-Conquer
More information38 Cache-Oblivious Data Structures
38 Cache-Oblivious Data Structures Lars Arge Duke University Gerth Stølting Brodal University of Aarhus Rolf Fagerberg University of Southern Denmark 38.1 The Cache-Oblivious Model... 38-1 38.2 Fundamental
More informationCSE 638: Advanced Algorithms. Lectures 10 & 11 ( Parallel Connected Components )
CSE 6: Advanced Algorithms Lectures & ( Parallel Connected Components ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 01 Symmetry Breaking: List Ranking break symmetry: t h
More informationCSE 613: Parallel Programming. Lecture 11 ( Graph Algorithms: Connected Components )
CSE 61: Parallel Programming Lecture ( Graph Algorithms: Connected Components ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 01 Graph Connectivity 1 1 1 6 5 Connected Components:
More informationCSE 548: Analysis of Algorithms. Lectures 14 & 15 ( Dijkstra s SSSP & Fibonacci Heaps )
CSE 548: Analysis of Algorithms Lectures 14 & 15 ( Dijkstra s SSSP & Fibonacci Heaps ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Fall 2012 Fibonacci Heaps ( Fredman & Tarjan,
More informationReport Seminar Algorithm Engineering
Report Seminar Algorithm Engineering G. S. Brodal, R. Fagerberg, K. Vinther: Engineering a Cache-Oblivious Sorting Algorithm Iftikhar Ahmad Chair of Algorithm and Complexity Department of Computer Science
More informationLecture 9 March 15, 2012
6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 9 March 15, 2012 1 Overview This is the last lecture on memory hierarchies. Today s lecture is a crossover between cache-oblivious
More informationLecture 19 Apr 25, 2007
6.851: Advanced Data Structures Spring 2007 Prof. Erik Demaine Lecture 19 Apr 25, 2007 Scribe: Aditya Rathnam 1 Overview Previously we worked in the RA or cell probe models, in which the cost of an algorithm
More informationMassive Data Algorithmics. Lecture 12: Cache-Oblivious Model
Typical Computer Hierarchical Memory Basics Data moved between adjacent memory level in blocks A Trivial Program A Trivial Program: d = 1 A Trivial Program: d = 1 A Trivial Program: n = 2 24 A Trivial
More informationI/O Model. Cache-Oblivious Algorithms : Algorithms in the Real World. Advantages of Cache-Oblivious Algorithms 4/9/13
I/O Model 15-853: Algorithms in the Real World Locality II: Cache-oblivious algorithms Matrix multiplication Distribution sort Static searching Abstracts a single level of the memory hierarchy Fast memory
More informationCSE 613: Parallel Programming. Lecture 2 ( Analytical Modeling of Parallel Algorithms )
CSE 613: Parallel Programming Lecture 2 ( Analytical Modeling of Parallel Algorithms ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2017 Parallel Execution Time & Overhead
More informationLecture 8 13 March, 2012
6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 8 13 March, 2012 1 From Last Lectures... In the previous lecture, we discussed the External Memory and Cache Oblivious memory models.
More information6.895 Final Project: Serial and Parallel execution of Funnel Sort
6.895 Final Project: Serial and Parallel execution of Funnel Sort Paul Youn December 17, 2003 Abstract The speed of a sorting algorithm is often measured based on the sheer number of calculations required
More informationCSE4502/5717: Big Data Analytics Prof. Sanguthevar Rajasekaran Lecture 7 02/14/2018; Notes by Aravind Sugumar Rajan Recap from last class:
CSE4502/5717: Big Data Analytics Prof. Sanguthevar Rajasekaran Lecture 7 02/14/2018; Notes by Aravind Sugumar Rajan Recap from last class: Prim s Algorithm: Grow a subtree by adding one edge to the subtree
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 informationCache-oblivious comparison-based algorithms on multisets
Cache-oblivious comparison-based algorithms on multisets Arash Farzan 1, Paolo Ferragina 2, Gianni Franceschini 2, and J. Ian unro 1 1 {afarzan, imunro}@uwaterloo.ca School of Computer Science, University
More informationFunnel Heap - A Cache Oblivious Priority Queue
Alcom-FT Technical Report Series ALCOMFT-TR-02-136 Funnel Heap - A Cache Oblivious Priority Queue Gerth Stølting Brodal, Rolf Fagerberg Abstract The cache oblivious model of computation is a two-level
More informationCache-Oblivious String Dictionaries
Cache-Oblivious String Dictionaries Gerth Stølting Brodal University of Aarhus Joint work with Rolf Fagerberg #"! Outline of Talk Cache-oblivious model Basic cache-oblivious techniques Cache-oblivious
More informationLecture April, 2010
6.851: Advanced Data Structures Spring 2010 Prof. Eri Demaine Lecture 20 22 April, 2010 1 Memory Hierarchies and Models of Them So far in class, we have wored with models of computation lie the word RAM
More informationCache-Oblivious Algorithms
Cache-Oblivious Algorithms Matteo Frigo, Charles Leiserson, Harald Prokop, Sridhar Ramchandran Slides Written and Presented by William Kuszmaul THE DISK ACCESS MODEL Three Parameters: B M P Block Size
More informationMerge Sort Goodrich, Tamassia Merge Sort 1
Merge Sort 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2004 Goodrich, Tamassia Merge Sort 1 Review of Sorting Selection-sort: Search: search through remaining unsorted elements for min Remove: remove
More informationPredecessor. Predecessor Problem van Emde Boas Tries. Philip Bille
Predecessor Predecessor Problem van Emde Boas Tries Philip Bille Predecessor Predecessor Problem van Emde Boas Tries Predecessors Predecessor problem. Maintain a set S U = {,..., u-} supporting predecessor(x):
More informationPredecessor. Predecessor. Predecessors. Predecessors. Predecessor Problem van Emde Boas Tries. Predecessor Problem van Emde Boas Tries.
Philip Bille s problem. Maintain a set S U = {,..., u-} supporting predecessor(x): return the largest element in S that is x. sucessor(x): return the smallest element in S that is x. insert(x): set S =
More informationLecture 12 March 21, 2007
6.85: Advanced Data Structures Spring 27 Oren Weimann Lecture 2 March 2, 27 Scribe: Tural Badirkhanli Overview Last lecture we saw how to perform membership quueries in O() time using hashing. Today we
More informationSo the actual cost is 2 Handout 3: Problem Set 1 Solutions the mark counter reaches c, a cascading cut is performed and the mark counter is reset to 0
Massachusetts Institute of Technology Handout 3 6854/18415: Advanced Algorithms September 14, 1999 David Karger Problem Set 1 Solutions Problem 1 Suppose that we have a chain of n 1 nodes in a Fibonacci
More informationDesign and Analysis of Algorithms
Design and Analysis of Algorithms CSE 5311 Lecture 8 Sorting in Linear Time Junzhou Huang, Ph.D. Department of Computer Science and Engineering CSE5311 Design and Analysis of Algorithms 1 Sorting So Far
More informationCache-Oblivious Algorithms A Unified Approach to Hierarchical Memory Algorithms
Cache-Oblivious Algorithms A Unified Approach to Hierarchical Memory Algorithms Aarhus University Cache-Oblivious Current Trends Algorithms in Algorithms, - A Unified Complexity Approach to Theory, Hierarchical
More information15 150: Principles of Functional Programming Sorting Integer Lists
15 150: Principles of Functional Programming Sorting Integer Lists Michael Erdmann Spring 2018 1 Background Let s define what we mean for a list of integers to be sorted, by reference to datatypes and
More informationCache-Oblivious Algorithms and Data Structures
Cache-Oblivious Algorithms and Data Structures Erik D. Demaine MIT Laboratory for Computer Science, 200 Technology Square, Cambridge, MA 02139, USA, edemaine@mit.edu Abstract. A recent direction in the
More informationLecture 22 November 19, 2015
CS 229r: Algorithms for ig Data Fall 2015 Prof. Jelani Nelson Lecture 22 November 19, 2015 Scribe: Johnny Ho 1 Overview Today we re starting a completely new topic, which is the external memory model,
More informationMemory Management Algorithms on Distributed Systems. Katie Becker and David Rodgers CS425 April 15, 2005
Memory Management Algorithms on Distributed Systems Katie Becker and David Rodgers CS425 April 15, 2005 Table of Contents 1. Introduction 2. Coarse Grained Memory 2.1. Bottlenecks 2.2. Simulations 2.3.
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 informationLecture 7 8 March, 2012
6.851: Advanced Data Structures Spring 2012 Lecture 7 8 arch, 2012 Prof. Erik Demaine Scribe: Claudio A Andreoni 2012, Sebastien Dabdoub 2012, Usman asood 2012, Eric Liu 2010, Aditya Rathnam 2007 1 emory
More informationCSE 613: Parallel Programming
CSE 613: Parallel Programming Lecture 3 ( The Cilk++ Concurrency Platform ) ( inspiration for many slides comes from talks given by Charles Leiserson and Matteo Frigo ) Rezaul A. Chowdhury Department of
More informationDivide and Conquer Algorithms
Divide and Conquer Algorithms T. M. Murali February 19, 2009 Divide and Conquer Break up a problem into several parts. Solve each part recursively. Solve base cases by brute force. Efficiently combine
More informationSORTING LOWER BOUND & BUCKET-SORT AND RADIX-SORT
Bucket-Sort and Radix-Sort SORTING LOWER BOUND & BUCKET-SORT AND RADIX-SORT 1, c 3, a 3, b 7, d 7, g 7, e B 0 1 2 3 4 5 6 7 8 9 Presentation for use with the textbook Data Structures and Algorithms in
More informationCSE 590: Special Topics Course ( Supercomputing ) Lecture 6 ( Analyzing Distributed Memory Algorithms )
CSE 590: Special Topics Course ( Supercomputing ) Lecture 6 ( Analyzing Distributed Memory Algorithms ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2012 2D Heat Diffusion
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 information( D. Θ n. ( ) f n ( ) D. Ο%
CSE 0 Name Test Spring 0 Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to run the code below is in: for i=n; i>=; i--) for j=; j
More informationSORTING AND SELECTION
2 < > 1 4 8 6 = 9 CHAPTER 12 SORTING AND SELECTION ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN JAVA, GOODRICH, TAMASSIA AND GOLDWASSER (WILEY 2016)
More informationLecture 2: Algorithms, Complexity and Data Structures. (Reading: AM&O Chapter 3)
Lecture 2: Algorithms, Complexity and Data Structures (Reading: AM&O Chapter 3) Algorithms problem: class of situations for which a computergenerated solution is needed. instance: specification of a particular
More informationGraphs and Network Flows ISE 411. Lecture 7. Dr. Ted Ralphs
Graphs and Network Flows ISE 411 Lecture 7 Dr. Ted Ralphs ISE 411 Lecture 7 1 References for Today s Lecture Required reading Chapter 20 References AMO Chapter 13 CLRS Chapter 23 ISE 411 Lecture 7 2 Minimum
More informationChapter 17. Disk Storage, Basic File Structures, and Hashing. Records. Blocking
Chapter 17 Disk Storage, Basic File Structures, and Hashing Records Fixed and variable length records Records contain fields which have values of a particular type (e.g., amount, date, time, age) Fields
More informationDIVIDE & CONQUER. Problem of size n. Solution to sub problem 1
DIVIDE & CONQUER Definition: Divide & conquer is a general algorithm design strategy with a general plan as follows: 1. DIVIDE: A problem s instance is divided into several smaller instances of the same
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 information16 Greedy Algorithms
16 Greedy Algorithms Optimization algorithms typically go through a sequence of steps, with a set of choices at each For many optimization problems, using dynamic programming to determine the best choices
More informationMain Memory and the CPU Cache
Main Memory and the CPU Cache CPU cache Unrolled linked lists B Trees Our model of main memory and the cost of CPU operations has been intentionally simplistic The major focus has been on determining
More informationAdvanced Database Systems
Lecture IV Query Processing Kyumars Sheykh Esmaili Basic Steps in Query Processing 2 Query Optimization Many equivalent execution plans Choosing the best one Based on Heuristics, Cost Will be discussed
More informationSearching a Sorted Set of Strings
Department of Mathematics and Computer Science January 24, 2017 University of Southern Denmark RF Searching a Sorted Set of Strings Assume we have a set of n strings in RAM, and know their sorted order
More informationProblem Set 6 Due: 11:59 Sunday, April 29
CS230 Data Structures Handout # 36 Prof. Lyn Turbak Monday, April 23 Wellesley College Problem Set 6 Due: 11:59 Sunday, April 29 Reading: You are expected to read and understand all of the following handouts,
More information8. Hidden Surface Elimination
-04-8 Hidden Surface Elimination To eliminate edges and surfaces not visible to the viewer Two categories: Object space methods: Image space methods: deal with object definitions directly Order the surfaces
More information1. Attempt any three of the following: 15
(Time: 2½ hours) Total Marks: 75 N. B.: (1) All questions are compulsory. (2) Make suitable assumptions wherever necessary and state the assumptions made. (3) Answers to the same question must be written
More informationCPSC 311: Analysis of Algorithms (Honors) Exam 1 October 11, 2002
CPSC 311: Analysis of Algorithms (Honors) Exam 1 October 11, 2002 Name: Instructions: 1. This is a closed book exam. Do not use any notes or books, other than your 8.5-by-11 inch review sheet. Do not confer
More informationAlgorithms Lab 3. (a) What is the minimum number of elements in the heap, as a function of h?
Algorithms Lab 3 Review Topics covered this week: heaps and heapsort quicksort In lab exercises (collaboration level: 0) The in-lab problems are meant to be be solved during the lab and to generate discussion
More informationRecursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences
Section 5.3 1 Recursion 2 Recursion Recursion defining an object (or function, algorithm, etc.) in terms of itself. Recursion can be used to define sequences Previously sequences were defined using a specific
More informationAlgorithms and Data Structures: Efficient and Cache-Oblivious
7 Ritika Angrish and Dr. Deepak Garg Algorithms and Data Structures: Efficient and Cache-Oblivious Ritika Angrish* and Dr. Deepak Garg Department of Computer Science and Engineering, Thapar University,
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 informationII (Sorting and) Order Statistics
II (Sorting and) Order Statistics Heapsort Quicksort Sorting in Linear Time Medians and Order Statistics 8 Sorting in Linear Time The sorting algorithms introduced thus far are comparison sorts Any comparison
More information3.2 Cache Oblivious Algorithms
3.2 Cache Oblivious Algorithms Cache-Oblivious Algorithms by Matteo Frigo, Charles E. Leiserson, Harald Prokop, and Sridhar Ramachandran. In the 40th Annual Symposium on Foundations of Computer Science,
More informationSorting Algorithms. CptS 223 Advanced Data Structures. Larry Holder School of Electrical Engineering and Computer Science Washington State University
Sorting Algorithms CptS 223 Advanced Data Structures Larry Holder School of Electrical Engineering and Computer Science Washington State University 1 QuickSort Divide-and-conquer approach to sorting Like
More informationn 2 ( ) ( ) + n is in Θ n logn
CSE Test Spring Name Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to multiply an m n matrix and a n p matrix is in: A. Θ( n) B. Θ( max(
More informationRegard as 32 runs of length 1. Split into two scratch files of 4 blocks each, writing alternate blocks to each file.
Consider the problem of sorting the following file using two way external merge sort. Assume it consists of 8 blocks of 4 records each, and that main memory is only large enough to sort 1 block at a time.
More informationCSE Data Structures and Introduction to Algorithms... In Java! Instructor: Fei Wang. Mid-Term Exam. CSE2100 DS & Algorithms 1
CSE 2100 Data Structures and Introduction to Algorithms...! In Java!! Instructor: Fei Wang! Mid-Term Exam CSE2100 DS & Algorithms 1 1. True or False (20%=2%x10)! (1) O(n) is O(n^2) (2) The height h of
More informationLecture 6 Sequences II. Parallel and Sequential Data Structures and Algorithms, (Fall 2013) Lectured by Danny Sleator 12 September 2013
Lecture 6 Sequences II Parallel and Sequential Data Structures and Algorithms, 15-210 (Fall 2013) Lectured by Danny Sleator 12 September 2013 Material in this lecture: Today s lecture is about reduction.
More informationHow many leaves on the decision tree? There are n! leaves, because every permutation appears at least once.
Chapter 8. Sorting in Linear Time Types of Sort Algorithms The only operation that may be used to gain order information about a sequence is comparison of pairs of elements. Quick Sort -- comparison-based
More informationUniversity of Waterloo Department of Electrical and Computer Engineering ECE250 Algorithms and Data Structures Fall 2017
University of Waterloo Department of Electrical and Computer Engineering ECE250 Algorithms and Data Structures Fall 207 Midterm Examination Instructor: Dr. Ladan Tahvildari, PEng, SMIEEE Date: Wednesday,
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 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 informationMerge Sort fi fi fi 4 9. Merge Sort Goodrich, Tamassia
Merge Sort 7 9 4 fi 4 7 9 7 fi 7 9 4 fi 4 9 7 fi 7 fi 9 fi 9 4 fi 4 Merge Sort 1 Divide-and-Conquer ( 10.1.1) Divide-and conquer is a general algorithm design paradigm: Divide: divide the input data S
More informationDatabase Applications (15-415)
Database Applications (15-415) DBMS Internals- Part V Lecture 13, March 10, 2014 Mohammad Hammoud Today Welcome Back from Spring Break! Today Last Session: DBMS Internals- Part IV Tree-based (i.e., B+
More informationLecture 9 March 4, 2010
6.851: Advanced Data Structures Spring 010 Dr. André Schulz Lecture 9 March 4, 010 1 Overview Last lecture we defined the Least Common Ancestor (LCA) and Range Min Query (RMQ) problems. Recall that an
More informationCache-Oblivious Algorithms
Cache-Oblivious Algorithms Paper Reading Group Matteo Frigo Charles E. Leiserson Harald Prokop Sridhar Ramachandran Presents: Maksym Planeta 03.09.2015 Table of Contents Introduction Cache-oblivious algorithms
More informationCache-Oblivious Shortest Paths in Graphs Using Buffer Heap
Cache-Oblivious Shortest Paths in Graphs Using uffer Heap Rezaul Alam Chowdhury The University of Texas at Austin Department of Computer Sciences Austin, TX 78712 shaikat@cs.utexas.edu ijaya Ramachandran
More information( ) + n. ( ) = n "1) + n. ( ) = T n 2. ( ) = 2T n 2. ( ) = T( n 2 ) +1
CSE 0 Name Test Summer 00 Last Digits of Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. Suppose you are sorting millions of keys that consist of three decimal
More informationSORTING, SETS, AND SELECTION
CHAPTER 11 SORTING, SETS, AND SELECTION ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH DATA STRUCTURES AND ALGORITHMS IN C++, GOODRICH, TAMASSIA AND MOUNT (WILEY 2004) AND SLIDES FROM
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( ) 1 B. 1. Suppose f x
CSE Name Test Spring Last Digits of Student ID Multiple Choice. Write your answer to the LEFT of each problem. points each is a monotonically increasing function. Which of the following approximates the
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 informationOutline for Today. How can we speed up operations that work on integer data? A simple data structure for ordered dictionaries.
van Emde Boas Trees Outline for Today Data Structures on Integers How can we speed up operations that work on integer data? Tiered Bitvectors A simple data structure for ordered dictionaries. van Emde
More informationThe divide and conquer strategy has three basic parts. For a given problem of size n,
1 Divide & Conquer One strategy for designing efficient algorithms is the divide and conquer approach, which is also called, more simply, a recursive approach. The analysis of recursive algorithms often
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 informationQuestion Score Points Out Of 25
University of Texas at Austin 6 May 2005 Department of Computer Science Theory in Programming Practice, Spring 2005 Test #3 Instructions. This is a 50-minute test. No electronic devices (including calculators)
More informationLecture 19 Sorting Goodrich, Tamassia
Lecture 19 Sorting 7 2 9 4 2 4 7 9 7 2 2 7 9 4 4 9 7 7 2 2 9 9 4 4 2004 Goodrich, Tamassia Outline Review 3 simple sorting algorithms: 1. selection Sort (in previous course) 2. insertion Sort (in previous
More informationCIS Operating Systems Contiguous Memory Allocation. Professor Qiang Zeng Spring 2018
CIS 3207 - Operating Systems Contiguous Memory Allocation Professor Qiang Zeng Spring 2018 Previous class Uniprocessor policies FCFS, Shortest Job First Round Robin Multilevel Feedback Queue Multiprocessor
More information( ) n 3. n 2 ( ) D. Ο
CSE 0 Name Test Summer 0 Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to multiply two n n matrices is: A. Θ( n) B. Θ( max( m,n, p) ) C.
More informationOutline for Today. How can we speed up operations that work on integer data? A simple data structure for ordered dictionaries.
van Emde Boas Trees Outline for Today Data Structures on Integers How can we speed up operations that work on integer data? Tiered Bitvectors A simple data structure for ordered dictionaries. van Emde
More informationReport on Cache-Oblivious Priority Queue and Graph Algorithm Applications[1]
Report on Cache-Oblivious Priority Queue and Graph Algorithm Applications[1] Marc André Tanner May 30, 2014 Abstract This report contains two main sections: In section 1 the cache-oblivious computational
More informationMultiple Choice. Write your answer to the LEFT of each problem. 3 points each
CSE 0-00 Test Spring 0 Name Last 4 Digits of Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. Suppose f ( x) is a monotonically increasing function. Which of the
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 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 informationlogn D. Θ C. Θ n 2 ( ) ( ) f n B. nlogn Ο n2 n 2 D. Ο & % ( C. Θ # ( D. Θ n ( ) Ω f ( n)
CSE 0 Test Your name as it appears on your UTA ID Card Fall 0 Multiple Choice:. Write the letter of your answer on the line ) to the LEFT of each problem.. CIRCLED ANSWERS DO NOT COUNT.. points each. The
More informationOperations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging.
Priority Queue, Heap and Heap Sort In this time, we will study Priority queue, heap and heap sort. Heap is a data structure, which permits one to insert elements into a set and also to find the largest
More informationLecture: Analysis of Algorithms (CS )
Lecture: Analysis of Algorithms (CS583-002) Amarda Shehu Fall 2017 Amarda Shehu Lecture: Analysis of Algorithms (CS583-002) Sorting in O(n lg n) Time: Heapsort 1 Outline of Today s Class Sorting in O(n
More informationCache Oblivious Algorithms
Cache Oblivious Algorithms Piyush Kumar Department of Computer Science State University of New York at Stony Brook Stony Brook, NY 11790, USA piyush@acm.org http://www.compgeom.com/co-chap/ Abstract. The
More informationParallel Models RAM. Parallel RAM aka PRAM. Variants of CRCW PRAM. Advanced Algorithms
Parallel Models Advanced Algorithms Piyush Kumar (Lecture 10: Parallel Algorithms) An abstract description of a real world parallel machine. Attempts to capture essential features (and suppress details?)
More informationRandomized Algorithms, Hash Functions
Randomized Algorithms, Hash Functions Lecture A Tiefenbruck MWF 9-9:50am Center 212 Lecture B Jones MWF 2-2:50pm Center 214 Lecture C Tiefenbruck MWF 11-11:50am Center 212 http://cseweb.ucsd.edu/classes/wi16/cse21-abc/
More informationDatabase Applications (15-415)
Database Applications (15-415) DBMS Internals- Part V Lecture 15, March 15, 2015 Mohammad Hammoud Today Last Session: DBMS Internals- Part IV Tree-based (i.e., B+ Tree) and Hash-based (i.e., Extendible
More informationRecursive Definitions Structural Induction Recursive Algorithms
Chapter 4 1 4.3-4.4 Recursive Definitions Structural Induction Recursive Algorithms 2 Section 4.1 3 Principle of Mathematical Induction Principle of Mathematical Induction: To prove that P(n) is true for
More informationClassic Data Structures Introduction UNIT I
ALGORITHM SPECIFICATION An algorithm is a finite set of instructions that, if followed, accomplishes a particular task. All algorithms must satisfy the following criteria: Input. An algorithm has zero
More information& ( D. " mnp ' ( ) n 3. n 2. ( ) C. " n
CSE Name Test Summer Last Digits of Mav ID # Multiple Choice. Write your answer to the LEFT of each problem. points each. The time to multiply two n " n matrices is: A. " n C. "% n B. " max( m,n, p). The
More information