25 views

Uploaded by ovimiky

Learn how to manipulate data in algorithm binary search.

- Lecture 3
- class15
- Time Series
- xll6
- Data Structures and Algorithm Analysis Lab Exercises 1S1718
- IT2305 SET2
- New Microsoft Word Document
- Liguagem de Programação Do m168
- ad3
- Seminar
- 80ee3binary Search
- Approx Subdiff
- Motion Estimation
- A Novel Approach for Data Clustering using Improved K-means Algorithm.pdf
- Synapseindia - PHP Development Arrays Fuction Part-2
- Data Structures Using C_2
- A Methodology for the Technical Unification of Kernels and RPCs
- COMPUTER PROGRAMMING (TMK 3102) LECTURE NOTES 3
- COMPUTER PROGRAMMING (TMK 3102) LECTURE NOTES 9
- Manual 14

You are on page 1of 20

CS126

Searching

Binary Search

Binary Search

Sequential search is not efficient for large

lists as it searches half the list, on average

Another search algorithm Binary search

Very fast

But can only be performed on ordered lists

Example

If you are looking for you friends number in the

phone book, you may decide to look from half

way , you know the book is ordered

alphabetically therefore if you decide the name is

in the right half you can disregard the left half

throw it away just concentrate on the right half

this way your search is dramatically reduced

only have book o search do the same process

again until eventually u either find the name or

decide its not there binary search is the same

Divide & Conquer technique

When a list is sorted and we have

random access to the list as in an array

or vector implementation

we can take advantage of this

additional structure in our search

methods.

binary search algorithm uses the

Divide & Conquermethod to search

the list

Divide & Conquer technique

First the search item is compared with the

middle element of the list. If the search

item is less than the middle element of the

list, we restrict the search to the first half of

the list; otherwise we search the second

half of the list

Binary Search

Consider a sorted list of length 12

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

4 8 19 25 34 39 45 48 66 75 89 95

list

Binary Search

Suppose we want to find 75

Entire list is searched compare 75 with middle

element in list, list[5] (which is 39)

Because 75 Is in list [6]..list[11] we restrict

search there

4 8 19 25 34 39 45 48 66 75 89 95

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

list

Search list

MID

Binary Search

The process is now repeated on the list

[6]..list[11] which is a list of 6

4 8 19 25 34 39 45 48 66 75 89 95

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]

list

Search list

Task - individually

During a binary search , which elements in

the array

4 8 12 14 20 24

Are compared to the target when the target

is a. 2 b.8 c.15

Answer

a. 12 and 4

B. 12, 4 and 8

C. 12, 20 and 14

most of the array is not searched at all ,

saving much time - thus BS algorithm is

very fast.

But how fast ? Counting the comparisons

I.e each time algorithm divides the array in

half - can provide us a measure of the

algorithms efficiency

Binary search Analysis

Suppose we are working with a sorted array

of n integers

Initially first = 0 and (because an array index in

J ava starts at 0 and n denotes the number of

elements in the list(length) then last = n-1

The element midway in an array indexed

from 0 to n-1 is mid = (n 1) / 2.

If the target is less than the value at mid,

then since the array is sorted we can be

certain that the target element is not in the

array from positions mid to n-1. In pseudo

code the idea is:

low = 0; high = n -1;

mid = (low + high) / 2;

if target = array[mid]

then return mid

else

if target < array[mid]

then target is not in range mid .. n-1

discard upper half by setting high = mid 1;

else

target is not in the 0 ..mid range;

discard lower half by setting low = mid + 1;

repeat with new range until possible array is of length 1.

If the lower half of the list 0..mid was discarded by the

above algorithm then the next probe would be at

mid = [(mid+1) + (n-1)] / 2

Binary search Analysis

which is the midpoint of the upper half.

Continuing in this way, unless we find the target, we

halve the list each time until it becomes of size one

and we either have found the target or it was not

present originally.

The complexity of such an algorithm the work

required to complete it given a list of size n initially

is the number of probes that are required. That is,

how many times can a list of size n be halved before

it becomes of size one? Let k be the smallest integer

such that

Binary search Analysis

n / 2^k = 1

Then k = ceiling (log n). Of course,

sometimes the target is found before k

probes. It has been proved that the average

time for a successful search by this method

is approximately log n 1 . So binary search

is O(log n).

publ i c i nt bi nar ySear ch( i nt t ar get ) {

i nt l ow = 0;

i nt hi gh = a. l engt h 1;

i nt mi d;

whi l e ( l ow <= hi gh) {

mi d = ( l ow + hi gh) / 2;

i f ( t ar get == a[ mi d] ) / / mat ch

r et ur n mi d;

el se

i f ( t ar get < a[ mi d] )

/ / sear ch l ow end of ar r ay

hi gh = mi d 1;

el se

/ / sear ch hi gh end of ar r ay

l ow = mi d + 1;

}

r et ur n 1;

}

Binary search Analysis

The above algorithm checks on each

iteration for whether target is at array[mid].

This is relatively unlikely until the sublists

become small

so a refinement of this algorithm involves

omitting that test until the final sublist (of

length one).

A sequential search of either a list, an array,

or a chain looks at the first item, the second

item, and so on until it either finds a

particular item or determines that the item

does not occur in the group

Average case of sequential search is O(n)

A binary search of an array requires that the

array be sorted . It looks first at the middle of

the array to determine in which half the

desired item can occur. The search repeats

this strategy on only this half of the array

Binary Search Vs Linear Search

The benefit of binary search over linear

search becomes significant for lists over

about 100 elements.

For smaller lists linear search may be faster

because of the speed of the simple

increment compared with the divisions

needed in binary search.

The general moral is that for large lists

binary search is very much faster than linear

search, but is not worth while for small lists.

Note that binary search is not appropriate

for linked list structures (no random access

for the middle term).

Demonstration

http://www.cosc.canterbury.ac.nz/peopl

e/mukundan/dsal/BSearch.html

in comparison linear search

http://www.cosc.canterbury.ac.nz/people/m

ukundan/dsal/LSearch.html

- Lecture 3Uploaded byLordrick Silvester
- class15Uploaded byQazi Khubaib Alam
- Time SeriesUploaded byyoman777
- xll6Uploaded byJose Sanchez
- Data Structures and Algorithm Analysis Lab Exercises 1S1718Uploaded byChristian Larano
- IT2305 SET2Uploaded bykaliappan45490
- New Microsoft Word DocumentUploaded byHarry Castle
- Liguagem de Programação Do m168Uploaded byRafael Cunha
- ad3Uploaded bydeeuGirl
- SeminarUploaded byJulie Watson
- 80ee3binary SearchUploaded bySourav Sharma
- Approx SubdiffUploaded byDeepak Kumar
- Motion EstimationUploaded bygech4
- A Novel Approach for Data Clustering using Improved K-means Algorithm.pdfUploaded byNinad Samel
- Synapseindia - PHP Development Arrays Fuction Part-2Uploaded bytarunsingh19866
- Data Structures Using C_2Uploaded byAJ Palao
- A Methodology for the Technical Unification of Kernels and RPCsUploaded byGath
- COMPUTER PROGRAMMING (TMK 3102) LECTURE NOTES 3Uploaded bymamat88
- COMPUTER PROGRAMMING (TMK 3102) LECTURE NOTES 9Uploaded bymamat88
- Manual 14Uploaded byray72ro
- C++ prgm.docxUploaded bySachin Shinde
- Scimakelatex.3633.Pedro+Gimeno.julio+Plaza.josue+BeldaUploaded byJosue Belda
- Control Systems Lab 1Uploaded byPatrick Go
- SAS LibraryUploaded byShiva Krishna
- Java Collection Interview QuestionsUploaded byaditya414
- Book References and Topper SpeakUploaded byNitin Nilesh
- DSP_P4 Digital Images_A-D & D-AUploaded byArmando Cajahuaringa
- Array Limitations - Why Linked List_ - Simplified CodingUploaded byBelal Haque
- Complex Decl of Pointers InCUploaded byakshayudpi
- Rschoustra.awalkAroundBlock.presentationUploaded bybiswal83

- Mic TrainingUploaded byovimiky
- Tort Cu Mac, Reteta Tort Cu MacUploaded byovimiky
- Imped an CIAUploaded byovimiky
- Basics of Recording NewUploaded byovimiky
- Private InvestigationsUploaded byovimiky
- Learn How to Play the GuitarUploaded byEskay
- Stereo RecordingUploaded byovimiky
- Mic TrainingUploaded byovimiky
- Recording Course OutlineUploaded byovimiky
- Imped an CIAUploaded byovimiky
- Basics of Recording NewUploaded byovimiky
- ProTools BasicUploaded byovimiky
- Stereo RecordingUploaded byovimiky
- Basics of MixingUploaded bysipunk

- Vector CalculusUploaded byBiswajeet Champaty
- Korean Lesson 1Uploaded byIvett97
- 1 IntroductionUploaded byBaski Dukkanim
- OpticsUploaded byKOJA
- DCN fileUploaded byArpit Kumar
- thesis antenna designUploaded bybknaruma
- Balter Capital Management Hedge Fund Regional Performance StudyUploaded byAbsolute Return
- Comparative Sand SuperlativesUploaded bysamayearias
- Design and Strength Analysis of Roof Lifting Tackle ArrangementUploaded byIRJET Journal
- Nature482_07_Turing Centenary - Is the Brain a Good Model for Machine IntelligenceUploaded byzukun
- FHWA-ICT-12-002Uploaded byUsman Rafiq
- motorbustransfertutorialrev20080715-160401012509Uploaded bycyyguy3k
- NDMI (1)Uploaded byAlinutza Stancescu
- Avto_2007_Paleomagnetism Eastern Alkaline Province.pdfUploaded byAnonymous YSnVjeg
- Design of Raft ThicknessUploaded byskrai4u
- Perl m03 - Arrays & HashesUploaded bykharels
- Les 11Uploaded byapi-3720010
- Chapter 1 RevisionUploaded byyvcg
- Selecting the Right CentrifugeUploaded byMythor
- Offset Dependent Mis-Tie Analysis at Seismic Line IntersectionUploaded bysialmuhammad456778
- Coptic Coptic of TruthUploaded bysarahparkhouse
- Shapiro - An Analysis of Variance Test for Normality (Complete Samples) 1965Uploaded bysmartinsfilho
- Advanced Anti-Theft & Home Safety System using GSMUploaded byIRJET Journal
- log n 44420Uploaded bydiego
- aq12fanUploaded byadkadim
- 244Uploaded bymukeshkumarj
- Comp Imp MCQUploaded byAtul Sharma
- Sources of Magnetic FieldUploaded bymjzapant09
- (B-Tech Elt Course Outline) Physics I - GS111Uploaded bysherry420
- jcedv3i2p180Uploaded byAditi Chandra