Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lecture 1.2.3

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 13

UNIVERSITY INSTITUTE OF

ENGINEERING
DEPARTMENT OF COMPUTER
SCIENCE AND ENGG.
Bachelor of Engineering (Computer Science & Engineering)
DATA STRUCTURES 21CSH-211

DISCOVER . LEARN . EMPOWER


Agenda

• Searching
• Linear Search
• Binary Search

2
Searching

Searching Algorithms are designed to check for an element or retrieve


an element from any data structure where it is stored. Based on the type
of search operation, these algorithms are generally classified into two
categories:
Sequential Search: In this, the list or array is traversed sequentially and
every element is checked. For example: Linear Search.
Interval Search: These algorithms are specifically designed for
searching in sorted data-structures. These type of searching algorithms
are much more efficient than Linear Search as they repeatedly target the
center of the search structure and divide the search space in half. For
Example: Binary Search.

3
Search Element using Linear Search

A simple approach is to do linear search, i.e


• Start from the leftmost element of arr[] and one by one compare x with
each element of arr[]
• If x matches with an element, return the index.
• If x doesn’t match with any of elements, return -1.

4
Linear Search
LINEAR(DATA, N, ITEM, LOC)
Here DATA is a linear array with N elements, and ITEM is a given item of information.
This algorithm finds the location LOC of ITEM in DATA, or sets LOC = 0 if the search
is unsuccessful.
1. [Insert ITEM at the end of DATA] 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 of loop]
4. [Successful?] If LOC = N+1, then: Set Loc = 0
5. Exit

5
Algorithm

• Linear Search ( Array A, Value x)


• Step 1: Set i to 1
• Step 2: if i > n then go to step 7
• Step 3: if A[i] = x then go to step 6
• Step 4: Set i to i + 1
• Step 5: Go to Step 2
• Step 6: Print Element x Found at index i and go to step 8
• Step 7: Print element not found
• Step 8: Exit
6
Pseudocode

• procedure linear_search (list, value)


• for each item in the list
• if match item == value
• return the item's location
• end if
• end for
• end procedure

7
Binary Search

•Search a sorted array by repeatedly dividing the search interval in half.


•Begin with an interval covering the whole array.
•If the value of the search key is less than the item in the middle of the
interval, narrow the interval to the lower half.
•Otherwise narrow it to the upper half. Repeatedly check until the value
is found or the interval is empty.

8
Binary Search Algorithm
• Binary search algorithm is efficient if the array is sorted.
• A binary search is used whenever the list starts to become large.
• Consider to use binary searches whenever the list contains more than 16
elements.
• The binary search starts by testing the data in the element at the middle of
the array to determine if the target is in the first or second half of the list.
• If it is in the first half, we do not need to check the second half. If it is in
the second half, we do not need to test the first half. In other words we
eliminate half the list from further consideration. We repeat this process
until we find the target or determine that it is not in the list.

9
Example

10
Binary Search Algorithm
1. [Define variables]
ST = LB, LAST= UB;
MID = (ST+LAST)/2;
Repeat 3 and 4 DO ST <= LAST & DATA[MID] != ITEM
3. If ITEM < DATA[MID] then
LAST = MID-1
If not
ST = MID+1
4. Set MID = INT((ST + LAST)/2)
[LAST repeat to 2]
5. If DATA[MID] = ITEM then
LOK = MID
If not,
LOK = NULL
6. Stop
11
References

• Lipschutz, Seymour, “Data Structures”, Schaum's Outline Series, Tata McGraw Hill.
• Goodrich, Michael T., Tamassia, Roberto, and Mount, David M., “Data Structures and Algorithms in C++”, Wiley
Student Edition.
• https://www.tutorialspoint.com/data_structures_algorithms/algorithms_basics.htm
• https://www.cs.utexas.edu/users/djimenez/utsa/cs1723/lecturehtml
• https://www.w3resource.com/php-exercises/searching-and-sorting-algorithm/searching-and-sorting-algorithm-exercise-4.
php
• https://www.programiz.com/dsa/merge-sort
• https://www.geeksforgeeks.org/binary-search/

12
THANK YOU

You might also like