KEMBAR78
Searching linear & binary search | PPTX
LINEAR SEARCH
Presented By
Nikunj Patel
Parth Patel
DATA
STRUCTURE
Searching: Finding the location of
item or printing some message when
item is not found.
SEARC
H
LINEAR BINARY
 Linear search: Traversing data sequentially to locate
item is called linear search.
 Ex: Searching an item for operation in array.
 Binary search: Data in array which is sorted in
increasing numerical order or alphabetically.
 Ex: Searching name in telephone directory,
searching words in dictionary.
LINEAR SEARCH
 It test whether the ITEM in DATA is present or
not.
 It test the data in sequential manner.
 It searches the data one by one fully and returns
the ITEM as the result.
 Otherwise, it returns the value 0.
 We see this by ALGORITHM.
Alg:LINEAR(DATA,N,ITEM,LOC)
 Items explanation:
1. DATA --Linear array
2. N --Number of elements
3. ITEM --Elements to find
4. LOC --Location of the item
STEPS:
1. [Insert ITEM at the end] Set DATA[N+1]:=ITEM.
2. [Initialize counter] Set LOC:=1.
3. [Search for ITEM]
Repeat while DATA[LOC]= ITEM:
Set LOC:=LOC+1.
[End if loop]
4. [Successful?]If LOC:=N+1, then ;
Set LOC:=0
5. Exit
EXECUTION WITH EXAMPLE
PARTICULARS:
1. DATA [6] =
2. ITEM=G
Cell
name
A B C D E F
Loc 1 2 3 4 5 6
 To find the item we are first inserting the item to the
end of the list.
 Step 1: DATA[N+1]=ITEM.
Exp:
N=6
DATA[6]=F
DATA[6+1]=G
 So the item is added at LOC[7]
A B C D E F G
1 2 3 4 5 6 7
 Step 2:
Initializing the counter to start the search.
Therefore, LOC=1.
It starts the search from LOC=1{i.e. from
DATA[1]=A}
 Step 3:
WHILE loop is executed till DATA[LOC]=ITEM
From the step 2, LOC=1
A B C D E F G
A B C D E F G
A B C D E F G
A B C D E F G
S
E
A
R
C
H
I
N
G
A B C D E F G
S
E
A
R
C
H
I
N
G
A B C D E F G
A B C D E F G
Here the item is found
 The item ‘G’ is located
 So the loop executes until this condition
A B C D E F G
 STEP 4:
Originally the location is 6. We added the item at
the end.
So the item is located in 7.
LOC=N+1
We reached the condition then
LOC=0
 STEP 5:
Searching is finished and the algorithm exits.
Binary Search
• If the array is sorted, then we can apply the binary
search technique.
number
• The basic idea is straightforward. First search the
value in the middle position. If X is less than this
value, then search the middle of the left half next. If
X is greater than this value, then search the middle
of the right half next. Continue in this manner.
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
Sequence of Successful Search - 1
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid
0 8#1
highlow



 

2
highlow
mid
38 < 44 low = mid+1 = 5
mid
4
Sequence of Successful Search - 2
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid
0 8#1



 

2
highlow
mid
44 < 77high = mid-1=5
4
mid
6
highlow
5 8#2
Sequence of Successful Search - 3
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 44 )low high mid
0 8#1



 

2
highlow
mid
44 == 44
4
5 8#2 6
highlow
5 5#3
mid
5
Successful Search!!
Sequence of Unsuccessful Search
- 4
5 12 17 23 38 44 77
0 1 2 3 4 5 6 7 8
84 90
search( 45 )low high mid
0 8#1



 

2
highlow
mid
4
5 8#2 6
5 5#3 5
high low
6 5#4
Unsuccessful Search
low > highno more elements to search
Binary Search Routine
public int binarySearch (int[] number, int searchValue) {
int low = 0,
high = number.length - 1,
mid = (low + high) / 2;
while (low <= high && number[mid] != searchValue) {
if (number[mid] < searchValue) {
low = mid + 1;
} else { //number[mid] > searchValue
high = mid - 1;
}
mid = (low + high) / 2; //integer division will
truncate
}
if (low > high) {
mid = NOT_FOUND;
}
return mid;
}
Searching linear &amp; binary search

Searching linear &amp; binary search

  • 1.
    LINEAR SEARCH Presented By NikunjPatel Parth Patel DATA STRUCTURE
  • 2.
    Searching: Finding thelocation of item or printing some message when item is not found. SEARC H LINEAR BINARY
  • 3.
     Linear search:Traversing data sequentially to locate item is called linear search.  Ex: Searching an item for operation in array.  Binary search: Data in array which is sorted in increasing numerical order or alphabetically.  Ex: Searching name in telephone directory, searching words in dictionary.
  • 4.
    LINEAR SEARCH  Ittest whether the ITEM in DATA is present or not.  It test the data in sequential manner.  It searches the data one by one fully and returns the ITEM as the result.  Otherwise, it returns the value 0.  We see this by ALGORITHM.
  • 5.
    Alg:LINEAR(DATA,N,ITEM,LOC)  Items explanation: 1.DATA --Linear array 2. N --Number of elements 3. ITEM --Elements to find 4. LOC --Location of the item
  • 6.
    STEPS: 1. [Insert ITEMat the end] Set DATA[N+1]:=ITEM. 2. [Initialize counter] Set LOC:=1. 3. [Search for ITEM] Repeat while DATA[LOC]= ITEM: Set LOC:=LOC+1. [End if loop] 4. [Successful?]If LOC:=N+1, then ; Set LOC:=0 5. Exit
  • 7.
    EXECUTION WITH EXAMPLE PARTICULARS: 1.DATA [6] = 2. ITEM=G Cell name A B C D E F Loc 1 2 3 4 5 6
  • 8.
     To findthe item we are first inserting the item to the end of the list.  Step 1: DATA[N+1]=ITEM. Exp: N=6 DATA[6]=F DATA[6+1]=G  So the item is added at LOC[7] A B C D E F G 1 2 3 4 5 6 7
  • 9.
     Step 2: Initializingthe counter to start the search. Therefore, LOC=1. It starts the search from LOC=1{i.e. from DATA[1]=A}  Step 3: WHILE loop is executed till DATA[LOC]=ITEM From the step 2, LOC=1
  • 10.
    A B CD E F G A B C D E F G A B C D E F G A B C D E F G S E A R C H I N G
  • 11.
    A B CD E F G S E A R C H I N G A B C D E F G A B C D E F G
  • 12.
    Here the itemis found  The item ‘G’ is located  So the loop executes until this condition A B C D E F G
  • 13.
     STEP 4: Originallythe location is 6. We added the item at the end. So the item is located in 7. LOC=N+1 We reached the condition then LOC=0  STEP 5: Searching is finished and the algorithm exits.
  • 14.
    Binary Search • Ifthe array is sorted, then we can apply the binary search technique. number • The basic idea is straightforward. First search the value in the middle position. If X is less than this value, then search the middle of the left half next. If X is greater than this value, then search the middle of the right half next. Continue in this manner. 5 12 17 23 38 44 77 0 1 2 3 4 5 6 7 8 84 90
  • 15.
    Sequence of SuccessfulSearch - 1 5 12 17 23 38 44 77 0 1 2 3 4 5 6 7 8 84 90 search( 44 )low high mid 0 8#1 highlow       2 highlow mid 38 < 44 low = mid+1 = 5 mid 4
  • 16.
    Sequence of SuccessfulSearch - 2 5 12 17 23 38 44 77 0 1 2 3 4 5 6 7 8 84 90 search( 44 )low high mid 0 8#1       2 highlow mid 44 < 77high = mid-1=5 4 mid 6 highlow 5 8#2
  • 17.
    Sequence of SuccessfulSearch - 3 5 12 17 23 38 44 77 0 1 2 3 4 5 6 7 8 84 90 search( 44 )low high mid 0 8#1       2 highlow mid 44 == 44 4 5 8#2 6 highlow 5 5#3 mid 5 Successful Search!!
  • 18.
    Sequence of UnsuccessfulSearch - 4 5 12 17 23 38 44 77 0 1 2 3 4 5 6 7 8 84 90 search( 45 )low high mid 0 8#1       2 highlow mid 4 5 8#2 6 5 5#3 5 high low 6 5#4 Unsuccessful Search low > highno more elements to search
  • 19.
    Binary Search Routine publicint binarySearch (int[] number, int searchValue) { int low = 0, high = number.length - 1, mid = (low + high) / 2; while (low <= high && number[mid] != searchValue) { if (number[mid] < searchValue) { low = mid + 1; } else { //number[mid] > searchValue high = mid - 1; } mid = (low + high) / 2; //integer division will truncate } if (low > high) { mid = NOT_FOUND; } return mid; }