Binary Search A Lecture in CE Freshman Seminar Series:

Slides:



Advertisements
Similar presentations
CSC 172 DATA STRUCTURES. SKIP LISTS Read Weiss
Advertisements

Apr. 2007SatisfiabilitySlide 1 Satisfiability A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
COP 3502: Computer Science I (Note Set #21) Page 1 © Mark Llewellyn COP 3502: Computer Science I Spring 2004 – Note Set 21 – Balancing Binary Trees School.
HandoutLecture 6Binary Search Weighing with a Balance A large container is known to hold 24 oz of nails. The hardware store has a balance, but no weights.
22C:19 Discrete Structures Trees Spring 2014 Sukumar Ghosh.
Searching Algorithms Finding what you are looking for.
HST 952 Computing for Biomedical Scientists Lecture 9.
Discrete Structure Li Tak Sing( 李德成 ) Lectures
Mar. 2005Measurement PuzzlesSlide 1 Measurement Puzzles A Lesson in the “Math + Fun!” Series.
Ver. 1.0 Session 5 Data Structures and Algorithms Objectives In this session, you will learn to: Sort data by using quick sort Sort data by using merge.
May 2015Binary SearchSlide 1 Binary Search A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
Tirgul 10 Rehearsal about Universal Hashing Solving two problems from theoretical exercises: –T2 q. 1 –T3 q. 2.
Apr. 2015SatisfiabilitySlide 1 Satisfiability A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
June 2007Malfunction DiagnosisSlide 1 Malfunction Diagnosis A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
HandoutMay 2007Binary Search A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
©Silberschatz, Korth and Sudarshan12.1Database System Concepts Chapter 12: Part B Part A:  Index Definition in SQL  Ordered Indices  Index Sequential.
May 2007Binary SearchSlide 1 Binary Search A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
Module #1 - Logic 1 Based on Rosen, Discrete Mathematics & Its Applications. Prepared by (c) , Michael P. Frank and Modified By Mingwu Chen Trees.
CS4432: Database Systems II
B+ Tree What is a B+ Tree Searching Insertion Deletion.
Skip Lists Mrutyunjay. Introduction ▪ Linked Lists Benefits & Drawbacks: – Benefits: – Easy Insert and Deletes, implementations. – Drawbacks: – Hard to.
AVL Trees Amanuel Lemma CS252 Algoithms Dec. 14, 2000.
Data Structures Week 8 Further Data Structures The story so far  Saw some fundamental operations as well as advanced operations on arrays, stacks, and.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
CS 206 Introduction to Computer Science II 04 / 22 / 2009 Instructor: Michael Eckmann.
Lecture 11COMPSCI.220.FS.T Balancing an AVLTree Two mirror-symmetric pairs of cases to rebalance the tree if after the insertion of a new key to.
Lecture on Binary Search and Sorting. Another Algorithm Example SEARCHING: a common problem in computer science involves storing and maintaining large.
CS 61B Data Structures and Programming Methodology Aug 7, 2008 David Sun.
ALGORITHMS.
R-Trees: A Dynamic Index Structure For Spatial Searching Antonin Guttman.
Advanced Data Structure By Kayman 21 Jan Outline Review of some data structures Array Linked List Sorted Array New stuff 3 of the most important.
May 2015Sorting NetworksSlide 1 Sorting Networks A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
Lecture 9COMPSCI.220.FS.T Lower Bound for Sorting Complexity Each algorithm that sorts by comparing only pairs of elements must use at least 
Logic Development Problems. Puzzle #1 You have a measurement scale where on both sides you can put some balls for weighing. You have a set of eight balls,
May 2007Sorting NetworksSlide 1 Sorting Networks A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering.
1 Section 5.1 Analyzing Algorithms Let P be a problem and A an algorithm to solve P. The running time of A can be analyzed by counting the number of certain.
Computational Geometry
Lecture 15 Nov 3, 2013 Height-balanced BST Recall:
File Organization and Processing Week 3
Data Structures – LECTURE Balanced trees
Week 7 - Friday CS221.
Week 13: Searching and Sorting
Multiway Search Trees Data may not fit into main memory
Lecture No.43 Data Structures Dr. Sohail Aslam.
Chapter 6 Transform-and-Conquer
Extra: B+ Trees CS1: Java Programming Colorado State University
Priority Queues Chuan-Ming Liu
CSE373: Data Structures & Algorithms Lecture 7: AVL Trees
CSE373: Data Structures & Algorithms Lecture 7: AVL Trees
3D Models from 2D Images A Lecture in the Freshman Seminar Series:
Satisfiability A Lecture in CE Freshman Seminar Series:
Chapter 6 Transform and Conquer.
Wednesday, April 18, 2018 Announcements… For Today…
B+ Trees What are B+ Trees used for What is a B Tree What is a B+ Tree
8/04/2009 Many thanks to David Sun for some of the included slides!
Discrete Mathematics CMP-101 Lecture 12 Sorting, Bubble Sort, Insertion Sort, Greedy Algorithms Abdul Hameed
Sorting Networks A Lecture in CE Freshman Seminar Series:
3D Models from 2D Images A Lecture in the Freshman Seminar Series:
Data Structures & Algorithms
CPS120: Introduction to Computer Science
Design and Analysis of Algorithms
Malfunction Diagnosis
CPS120: Introduction to Computer Science
Richard Anderson Spring 2016
Indexing, Access and Database System Architecture
Heaps and priority queues
CO4301 – Advanced Games Development Week 12 Using Trees
CSE 326: Data Structures Lecture #14
Algorithm Course Algorithms Lecture 3 Sorting Algorithm-1
Invitation to Computer Science 5th Edition
Presentation transcript:

Binary Search A Lecture in CE Freshman Seminar Series: Ten Puzzling Problems in Computer Engineering Apr. 2016 Binary Search

About This Presentation This presentation belongs to the lecture series entitled “Ten Puzzling Problems in Computer Engineering,” devised for a ten-week, one-unit, freshman seminar course by Behrooz Parhami, Professor of Computer Engineering at University of California, Santa Barbara. The material can be used freely in teaching and other educational settings. Unauthorized uses, including any use for financial gain, are prohibited. © Behrooz Parhami Edition Released Revised First May 2007 May 2008 May 2009 May 2010 Apr. 2011 May 2012 May 2015 Apr. 2016 Apr. 2016 Binary Search

Game of 20 Questions as Binary Search 1 5 8 16 18 23 30 33 38 44 47 54 58 64 67 70 74 77 81 85 88 91 99 101 105 110 116 118 122 126 130 133 4 3 2 Yes No Animate? Yes No Yes No Human? With perfect questioning, one of 220 possible answers can be found with 20 questions   Apr. 2016 Binary Search

Weighing with a Balance A large container is known to hold 24 oz of nails. The hardware store has a balance, but no weights. Can you measure out 9 oz of nails for a customer? 12 oz 12 oz Divide all nails into two equal piles: 12 oz 6 oz 6 oz Divide one pile into two equal piles: 12 oz 6 oz 3 oz 3 oz . . . and again: A chemist has a balance and fixed weights of 1, 2, 4, and 8 grams. Show that she can weigh any amount of material from 1 to 15 grams by placing the weights on one side and the material on the other. 3 = 2 + 1; 5 = 4 + 1; 6 = 4 + 2; 7 = 4 + 2 + 1; 9 = 8 + 1; 10 = 8 + 2; 11 = 8 + 2 + 1 What is the best set of 4 fixed weights in the sense of maximizing the range of measurable weights in increments of 1 gram? (e.g., 1, 4, 7, 12) Weights of 1, 3, 9, and 27 grams allow us to measure up to 40 grams Apr. 2016 Binary Search

Find the Lighter Counterfeit Coin We have three coins. Two are normal coins; one is a counterfeit coin that weighs less. Identify the counterfeit coin with one weighing on a balance. 1 2 3 Compare coins 1 & 2. If they weigh the same, coin 3 is counterfeit; otherwise the lighter of the two is counterfeit. We have nine coins; eight normal coins and a counterfeit coin that weighs less. Identify the counterfeit with 2 weighings. Generalize: How many weighing with a balance are needed to find a light counterfeit coin among n coins? We need w weighing with a balance to find a light counterfeit coin among 3w coins. So, the number of required weighings with n coins is w = log3 n . How should we change the procedures above if the counterfeit coin is known to be heavier than normal ones instead of lighter? Apr. 2016 Binary Search

12 Coins with 1 Counterfeit: Lighter or Heavier We have 12 coins. Eleven are normal coins; one is a counterfeit coin that weighs less or more than a normal coin. Identify the counterfeit coin and its relative weight with a minimum number of weighings on a balance. Hint: First do it for 3 coins, one of which is a counterfeit, using only two weighing, Compare A & B Group A Group B Group C If A = B, then C contains the counterfeit coin. If the three C coins are lighter, then . . . If A < B, compare {A1, A2, B1} against {A3, B2, C1}; note that C coins are known to be normal. The three cases of left heavier, right heavier, and balance lead to the following conclusions: Left heavier: B1 heavier or A3 lighter. In the third step, compare B1 against a normal coin. Right heavier: B2 heavier or {A1, A2} lighter. In the third step, compare A1 and A2. Balance: A4 lighter or {B3, B4} heavier. In the third step, compare B3 and B4. Weigh 3 coins from C against 3 good coins. If equal, the lone remaining coin in C is counterfeit and one more weighing is enough to tell if it’s lighter or heavier than normal. If the three C coins are heavier, then . . . If A < B or A > B . . . Apr. 2016 Binary Search

Another Solution to the 12-Coin Puzzle We have 12 coins. Eleven are normal coins; one is a counterfeit coin 1 5 9 4 8 12 2 6 10 3 7 11 1 4 6 10 against 5 7 9 12 2 5 4 11 against 6 8 7 10 3 6 5 12 against 4 9 8 11 L L L np L L B 7– L L R L B L L B B L B R L R L L R B L R R B L L B L B B L R B B L B B B np B B R B R L B R B B R R R L L R L B R L R R B L R B B R B R R R L R R B 7+ R R R np Each weighing has three possible outcomes: L -- Left heavier R -- Right heavier B -- Balance Example: L L B -- Counterfeit coin is among 1, 2, 7, 10  7 is lighter Apr. 2016 Binary Search

Searching in Unsorted and Sorted Lists How would you find the person or business having the phone number 765-4321 in a standard phone directory? Because a standard phone directory is sorted by names, rather than by numbers, we have no choice but to scan the entire directory. On average, half of the entries are examined before either the number is found or the end of the directory is reached. This is an O(n) algorithm. How would you find the meaning of “scissile” (pronounced יsis-әl) in a standard English dictionary? We do not have to search the entire dictionary. We examine a page in the area where we think “s” words are listed. Then we know whether to search before or after that page. We repeat this process, each time narrowing the search region. On average, 10 pages are examined in a 1000-page dictionary before finding the word or discovering that it is not a valid word. This is an O(log n) algorithm. By the way, “scissile” means “easily cut or split”   Apr. 2016 Binary Search

Searching in an Alphabetized List Is “tomato paste” an ingredient? 2 4 6 8 10 12 14 16 18 20 Possible range: [0, 20] Middle of the range = (0 + 20)/2 = 10 tomato paste > olive or vegetable oil Possible range: [11, 20] Middle of the range = (11 + 20)/2 = 15 tomato paste > sliced pitted ripe olives Possible range: [16, 20] Middle of the range = (16 + 20)/2 = 18 tomato paste > thinly sliced pepperoni Possible range: [19, 20] Middle of the range = (19 + 20)/2 = 19 Tomato paste is indeed an ingredient!   Apr. 2016 Binary Search

A Guessing Game Interactive search game via Khan Academy The computer chooses a number You try to find that number by a sequence of guesses, the fewer, the better After each guess, the computer provides one of three possible responses: “Correct!”, “Too high!”, or “Too low!” https://www.khanacademy.org/computing/computer-science/algorithms/intro-to-algorithms/a/a-guessing-game   Apr. 2016 Binary Search

The Binary Search Algorithm Is the number 85 in the 63-entry list to the right? 1 2 5 6 8 12 16 17 18 21 23 24 30 32 33 35 38 40 44 45 47 49 54 57 58 59 64 66 67 69 70 71 74 75 77 80 81 83 85 87 88 90 91 93 99 100 101 102 105 107 110 111 116 117 118 120 122 125 126 128 130 131 133 First Last Middle Entry Outcome 1 63 32 71 > 33 63 48 102 < 33 47 40 87 < 33 39 36 80 > 37 39 38 83 > 37 37 37 85 = 2 1 4 Six probes are needed with a 63-entry list, in the worst case 5 3 More generally, a (2n – 1)-entry list requires n probes in the worst case   Apr. 2016 Binary Search

Interpolation Search Is the number 85 in the 63-entry list to the right? 1 2 5 6 8 12 16 17 18 21 23 24 30 32 33 35 38 40 44 45 47 49 54 57 58 59 64 66 67 69 70 71 74 75 77 80 81 83 85 87 88 90 91 93 99 100 101 102 105 107 110 111 116 117 118 120 122 125 126 128 130 131 133 When looking for an entry x in a list, probe it at size(x – min)/(max – min) First probe is at 63(85 – 1)/(133 – 1)  40 Second probe is at 40(85 – 1)/(87 – 1)  39 First Last Probe Entry Outcome 1 63 40 87 < 1 40 39 85 = 2 1 Dictionary lookup: When looking up a word in the dictionary, we instinctively use interpolation search   Apr. 2016 Binary Search

Searching in Dynamic Lists A dynamic list has entries inserted or deleted 1 2 5 6 8 12 16 17 18 21 23 24 30 32 33 35 38 40 44 45 47 49 54 57 58 59 64 66 67 69 70 71 74 75 77 80 81 83 85 87 88 90 91 93 99 100 101 102 105 107 110 111 116 117 118 120 122 125 126 128 130 131 133 I If we use a binary search algorithm on a dynamic list, its sorted order must be maintained Example: Delete 81 from the list 1. Search to find the entry 81 2. Move all entries beyond 81 one notch up Example: Insert 95 into the list 1. Search for 95, to see where it should go 2. Move all entries beyond there a notch down 3. Put 95 in the vacated location D Addition/deletion takes O(n) steps on average. So, if the number of additions/deletions is comparable to the number of searches, sorting the list does not buy us anything   Apr. 2016 Binary Search

Examples of Dynamic Lists Students currently enrolled at UCSB: This list is dynamic, but does not change often 1 2 5 6 8 12 16 17 18 21 23 24 30 32 33 35 38 40 44 45 47 49 54 57 58 59 64 66 67 69 70 71 74 75 77 80 81 83 85 87 88 90 91 93 99 100 101 102 105 107 110 111 116 117 118 120 122 125 126 128 130 131 133 Customers of a wireless phone company currently having active connections: This list may change 1000s of times per minute Even “static” lists may change on occasion … UCSB graduates, class of 2000: This list is nearly static, but may change to include missing persons or to make corrections Spell check dictionary for a word processor: Changes as you add new words Question: How do we store a rapidly changing dynamic list so that it is easy to search and to update with insertions and deletions? Stud #s, customer IDs, etc.   Apr. 2016 Binary Search

Binary Search Trees Example 1: Find 47 Example 2: Find 112 < 71 5 6 8 12 16 17 18 21 23 24 30 32 33 35 38 40 44 45 47 49 54 57 58 59 64 66 67 69 70 71 74 75 77 80 81 83 85 87 88 90 91 93 99 100 101 102 105 107 110 111 116 117 118 120 122 125 126 128 130 131 133 1 5 8 16 18 23 30 33 38 44 47 54 58 64 67 70 74 77 81 85 88 91 99 101 105 110 116 118 122 126 130 133 2 12 21 32 40 49 59 69 75 83 90 100 107 117 125 131 6 24 45 66 80 93 111 128 17 57 87 120 35 71 102 Example 1: Find 47 Example 2: Find 112 < 71 > 71 > 35 > 102 < 57 < 120 > 45 > 111 < 49 < 117 Found < 116 Not found 63-item list   Apr. 2016 Binary Search

Insertions and Deletions in Binary Search Trees 1 5 8 16 18 23 30 33 38 44 47 54 58 64 67 70 74 77 81 85 88 91 99 101 105 110 116 118 122 126 130 133 2 12 21 32 40 49 59 69 75 83 90 100 107 117 125 131 6 24 45 66 80 93 111 128 17 57 87 120 35 71 102 Example 1: Insert 48 Example 2: Delete 116 Complications to deal with: < 71 > 71 Loss of balance due to repeated insertions and deletions > 35 > 102 < 57 < 120 Deletion of an inner or nonleaf node > 45 > 111 < 49 < 117 Deleted > 47 48   Apr. 2016 Binary Search

Example Unbalanced (Random) Binary Tree Source: http://cg.scs.carleton.ca/~luc/trees.html Apr. 2016 Binary Search

Random Binary Trees as Works of Art Source: http://cg.scs.carleton.ca/~luc/BRUCE/brucepics.html Apr. 2016 Binary Search

Practical Multiway Search Trees B-tree, with 1-3 entries (B = balanced, Boeing Labs, or Bayer/McCreight) Property at each node: Subtree between xi and xi+1 has all elements in [xi, xi+1] M E H P T X F G I K L N O Q S U V Y Z A C Find A Insert D Delete L Find B Insert J Delete T Apr. 2016 Binary Search

Other Applications of Binary Search f(x) Solve the equation x4 + 5x – 2 = 0 +4 f(x) = x4 + 5x – 2 = 0 f(0) = –2 f(1) = 4 So, there must be a root in [0, 1] f(1/2) = +0.5625 Root in [0, 1/2] f(1/4) = –0.7461 Root in [1/4, 1/2] x f(3/8) = –0.1052 Root in [3/8, 1/2] 1 f(7/16) = +0.2241 Root in [3/8, 7/16] –2 1 4 191 256 – 3 8 431 4096 – 7 16 1 2 9 16 x f(x) 1 –2 4 Apr. 2016 Binary Search

Creating Binary-Tree Mazes Start with grid and outer walls Divide the area in two parts, with an opening between them Repeat dividing process for each of two parts, then for four parts, etc., until no further dividing is possible You know you are done when every rectangular area has one side of length 1 Have fun with your maze! Apr. 2016 Binary Search