Searching an Array: Binary Search

Slides:



Advertisements
Similar presentations
The Dictionary ADT: Skip List Implementation
Advertisements

SKIP LISTS Amihood Amir Incorporationg the slides of Goodrich and Tamassia (2004)
Nov 10, Fall 2009IAT 8001 Binary Search Sorting. Nov 10, Fall 2009IAT 8002 Search  Often want to search for an item in a list  In an unsorted list,
Jun 23, 2014IAT 2651 Binary Search Sorting. Jun 23, 2014IAT 2652 Search  Frequently wish to organize data to support search –Eg. Search for single item.
HST 952 Computing for Biomedical Scientists Lecture 9.
© 2004 Goodrich, Tamassia Skip Lists1  S0S0 S1S1 S2S2 S3S3    2315.
1 CSE1301 Computer Programming Lecture 31: List Processing (Search)
Objectives Learn how to implement the sequential search algorithm Explore how to sort an array using the selection sort algorithm Learn how to implement.
Nov 21, Fall 2006IAT 8001 Binary Search Sorting. Nov 21, Fall 2006IAT 8002 Search  Often want to search for an item in a list  In an unsorted list,
Skip Lists1 Skip Lists William Pugh: ” Skip Lists: A Probabilistic Alternative to Balanced Trees ”, 1990  S0S0 S1S1 S2S2 S3S3 
Searching Chapter Chapter Contents The Problem Searching an Unsorted Array Iterative Sequential Search Recursive Sequential Search Efficiency of.
Chapter Tow Search Trees BY HUSSEIN SALIM QASIM WESAM HRBI FADHEEL CS 6310 ADVANCE DATA STRUCTURE AND ALGORITHM DR. ELISE DE DONCKER 1.
24/3/00SEM107 - © Kamin & ReddyClass 16 - Searching - 1 Class 16 - Searching r Linear search r Binary search r Binary search trees.
Data Structures & Algorithms CHAPTER 4 Searching Ms. Manal Al-Asmari.
CSE1301 Computer Programming: Lecture 26 List Processing (Search)
CS 162 Intro to Programming II Searching 1. Data is stored in various structures – Typically it is organized on the type of data – Optimized for retrieval.
L. Grewe.  An array ◦ stores several elements of the same type ◦ can be thought of as a list of elements: int a[8]
CSC 211 Data Structures Lecture 13
CS261 Data Structures Ordered Bag Dynamic Array Implementation.
Skip Lists 二○一七年四月二十五日
2/19/2016 3:18 PMSkip Lists1  S0S0 S1S1 S2S2 S3S3    2315.
Chapter 3: Sorting and Searching Algorithms 3.1 Searching Algorithms.
 Introduction to Search Algorithms  Linear Search  Binary Search 9-2.
Advanced Sorting 7 2  9 4   2   4   7
Skip Lists S3   S2   S1   S0  
Sorted Maps © 2014 Goodrich, Tamassia, Goldwasser Skip Lists.
Skip Lists 5/10/2018 Presentation for use with the textbook Data Structures and Algorithms in Java, 6th edition, by M. T. Goodrich, R. Tamassia, and M.
CSCE 3110 Data Structures & Algorithm Analysis
CSCE 3110 Data Structures & Algorithm Analysis
Data Structures I (CPCS-204)
Tables and Dictionaries
Lecture No.43 Data Structures Dr. Sohail Aslam.
Sections 8.7 – 8.8 Balancing a Binary Search Tree.
Lecture 22 Binary Search Trees Chapter 10 of textbook
Searching & Sorting "There's nothing hidden in your head the sorting hat can't see. So try me on and I will tell you where you ought to be." -The Sorting.
Skip Lists S3 + - S2 + - S1 + - S0 + -
ITEC 2620M Introduction to Data Structures
Bit Vector Linked List (Sorted and Unsorted) Hash Table Search Trees
Skip Lists.
Searching.
Skip Lists S3 + - S2 + - S1 + - S0 + -
CSC215 Lecture Algorithms.
CMSC 341 Skip Lists 1.
Search Sorted Array: Binary Search Linked List: Linear Search
Skip Lists S3 + - S2 + - S1 + - S0 + -
Sorted Maps © 2014 Goodrich, Tamassia, Goldwasser Skip Lists.
Dictionaries < > = /3/2018 8:58 AM Dictionaries
searching Concept: Linear search Binary search
CSE 373: Data Structures and Algorithms
CMSC 341 Skip Lists.
CSE 373 Data Structures and Algorithms
CSE 373: Data Structures and Algorithms
CMSC 341 Skip Lists.
Binary Trees: Motivation
Principles of Computing – UFCFA3-30-1
Parasol Lab, Dept. CSE, Texas A&M University
Data Structures: Searching
Topic 24 sorting and searching arrays
Copyright © Aiman Hanna All rights reserved
Skip List: formally A skip list for a set S of distinct (key, element) items is a series of lists S0, S1 , … , Sh such that Each list Si contains the special.
CSC 143 Binary Search Trees.
Lecture No.02 Data Structures Dr. Sohail Aslam
CS210- Lecture 17 July 12, 2005 Agenda Collision Handling
Search Sorted Array: Binary Search Linked List: Linear Search
Principles of Computing – UFCFA3-30-1
CMSC 341 Skip Lists.
Instructor: Dr. Michael Geiger Spring 2019 Lecture 34: Exam 3 Preview
Binary Search Binary Search Algorithm
Skip List: Implementation
Dictionaries and Hash Tables
Presentation transcript:

Searching an Array: Binary Search Binary search is like looking up a phone number or a word in the dictionary Start in middle of book If name you're looking for comes before names on page, look in first half Otherwise, look in second half End of Lecture 38

Lecture No.39 Data Structure Dr. Sohail Aslam

Binary Search If ( value == middle element ) value is found else if ( value < middle element ) search left-half of list with the same method else search right-half of list with the same method Start lecture 39

Binary Search 10 1 5 7 9 10 13 17 19 27 Case 1: val == a[mid] val = 10 low = 0, high = 8 mid mid = (0 + 8) / 2 = 4 10 a: 1 5 7 9 10 13 17 19 27 1 2 3 4 5 6 7 8 low high

Binary Search -- Example 2 Case 2: val > a[mid] val = 19 low = 0, high = 8 mid = (0 + 8) / 2 = 4 new low new low = mid+1 = 5 13 17 19 27 a: 1 5 7 9 10 13 17 19 27 1 2 3 4 5 6 7 8 low high mid

Binary Search -- Example 3 Case 3: val < a[mid] val = 7 low = 0, high = 8 mid = (0 + 8) / 2 = 4 new high new high = mid-1 = 3 5 7 9 1 a: 5 7 9 1 10 13 17 19 27 1 2 3 4 5 6 7 8 low high mid

Binary Search -- Example 3 (cont) val = 7 5 7 9 10 13 17 19 1 27 2 3 4 6 8 a: 5 7 9 10 13 17 19 1 27 2 3 4 6 8 a: 5 7 9 10 13 17 19 1 27 2 3 4 6 8 a:

Binary Search – C++ Code int isPresent(int *arr, int val, int N) { int low = 0; int high = N - 1; int mid; while ( low <= high ){ mid = ( low + high )/2; if (arr[mid]== val) return 1; // found! else if (arr[mid] < val) low = mid + 1; else high = mid - 1; } return 0; // not found

Binary Search: binary tree An entire sorted list First half Second half First half Second half First half The search divides a list into two small sub-lists till a sub-list is no more divisible.

Binary Search Efficiency After 1 bisection N/2 items After 2 bisections N/4 = N/22 items . . . After i bisections N/2i =1 item i = log2 N

Implementation 3: linked list TableNodes are again stored consecutively (unsorted or sorted) insert: add to front; (1or n for a sorted list) find: search through potentially all the keys, one at a time; (n for unsorted or for a sorted list remove: find, remove using pointer alterations; (n) key entry and so on

Implementation 4: Skip List Overcome basic limitations of previous lists Search and update require linear time Fast Searching of Sorted Chain Provide alternative to BST (binary search trees) and related tree structures. Balancing can be expensive. Relatively recent data structure: Bill Pugh proposed it in 1990.

Skip List Representation Can do better than n comparisons to find element in chain of length n 20 30 40 50 60 head tail

Skip List Representation Example: n/2 + 1 if we keep pointer to middle element 20 30 40 50 60 head tail

Higher Level Chains For general n, level 0 chain includes all elements 40 50 60 head tail 20 30 26 57 level 1&2 chains For general n, level 0 chain includes all elements level 1 every other element, level 2 chain every fourth, etc. level i, every 2i th element

Higher Level Chains Skip list contains a hierarchy of chains 40 50 60 head tail 20 30 26 57 level 1&2 chains Skip list contains a hierarchy of chains In general level i contains a subset of elements in level i-1

Skip List: formally A skip list for a set S of distinct (key, element) items is a series of lists S0, S1 , … , Sh such that Each list Si contains the special keys + and - List S0 contains the keys of S in nondecreasing order Each list is a subsequence of the previous one, i.e., S0  S1  …  Sh List Sh contains only the two special keys End of lecture 39, Start of lecture 40.