130 likes | 248 Views
Lecture 4 on Data Structure. Array. Searching : Linear search. Searching refers to the operation of finding the location LOC of ITEM in DATA, or printing some message that ITEM does not appear there.
E N D
Searching : Linear search Searching refers to the operation of finding the location LOC of ITEM in DATA, or printing some message that ITEM does not appear there. DATA is a linear array with n elements. The most intuitive way to search for a given ITEM in DATA is to compare ITEM with each element of DATA one by one. That is first we test whether DATA[1 ]=ITEM, and then we test whether DATA[2 ]=ITEM, and so on. This method, which traverses DATA sequentially to locate ITEM, is called linear search or sequential search. • Algorithm 4.5 : A linear array DATA with N elements and a specific ITEM of information are given. This algorithm finds the location LOC of ITEM in the array DATA or sets LOC = 0. • Set DATA[N+1]:=ITEM. • Set LOC:=1. • Repeat while DATA[LOC]! =ITEM : Set LOC := LOC +1. [End of loop] • If LOC = N+1, then : • Write : ITEM is not in the array DATA. • Else : • Write : LOC is the location of ITEM. • 5.Exit. Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Complexity of Linear search • Measured by the number f(n) of comparisons required to find ITEM in the DATA array. Two important case: • Average case: • Suppose pk is the probability that ITEM appears in DATA[k], and • q is the probability that ITEM does not appears in DATA. • Then p1+ p2+ p3+ p4+ … pn+ q = 1 (Total probability) • Average number of comparisons can be calculated by- • f(n) = 1. p1 + 2. p1+ 3. p1+ ……………….+ n . pn+ (n+1). q • Let, q is very small q0 and item appears in equal probability then pi= 1/n • Worse case: when the search occurs through the entire array, DATA. i.e. When the ITEM does not appar in the array DATA • It requires f(n)= n+1 • In this case, the running time is proportional to n Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search Algorithm BINARY(DATA, LB, UB, ITEM, LOC) • Set BEG=LB; END=UB; and MID=INT((BEG+END)/2). • Repeat step 3 and 4 while BEG ≤ END and DATA[MID] ≠ ITEM • If ITEM < DATA[MID] then Set END= MID + 1 Else: Set BEG= MID-1 [end of if structure] • Set MID= INT((BEG+END)/2) [End of step 2 loop] • If ITEM = DATA[MID] then Set LOC= MID Else: Set LOC= NULL [end of if structure] • Exit. Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search example (Seek for 123) Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search - Complexity • Often not interested in best case. • Worst case: • Loop executes until BEG <= END • Size halved in each iteration • N, N/2, N/4, …N/2K…. 1 • How many steps ? Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search - Complexity • Worst case: • N/2K = 1 i.e. 2K = N • Which gives K=log2N steps, which is O(log2(N)) • This is considered very fast when compared to linear Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search - Complexity • Average case: • 1st iteration: 1 possible value • 2nd iteration: 2 possible values (left or right half) • 3rd iteration: 4 possible values (left of left, right of left, right of right, right of left) • ith iteration: 2i-1 possible values Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Binary Search - Complexity • Average Case: 1 + 2 + 2 + 3 + 3 + 3 + 3 + … (upto log N steps) • 1 element can be found with 1 comparison • 2 elements 2 • 4 elements 3 • Above Sum = sum over all possibilities = i=0 to log N(i*2i-1) = O (log N) Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Columns 1 2 3 1 2 3 A[1, 1] A[1, 2] A[1, 3] Rows A[2, 1] A[2, 2] A[2, 3] A[3, 1] A[3, 2] A[3, 3] Multidimensional arrays Two dimensional, three dimensional arrays and ….. Where elements are referenced respectively by two, three and ……subscripts. Two – dimensional Arrays A Two – dimensional Arrays m x n array A is a collection of m . n data elements such that each element is specified by a pair of integers (such as J, K), called subscripts. The element of A with first subscript J and second subscript K will be denoted by A[J, K] Fig: Two dimensional 3 x 3 array A Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Matrix Multiplication Algorithm 4.7: MATMUL(A, B, C, M, P, N) Let A be an MXP matrix array, and let B be a PXN matrix array. This algorithm stores the product of A and B in an MXN matrix array. • Repeat steps 2 to 4 for I =1 to M: • Repeat steps 3 to 4 for J =1 to N: • Set C[I, J]:=0 • Repeat for K =1 to P: • C[I, J]:= C[I, J]:+A[I, K]*B[K, J] • Exit See solved problem 4.12. Prepared by, Jesmin Akhter, Lecturer, IIT, JU
Solved Problem 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 4.10,4.12 Supplementary problems: 4.25 Prepared by, Jesmin Akhter, Lecturer, IIT, JU