Download presentation
Presentation is loading. Please wait.
Published byCorey Bates Modified over 9 years ago
1
Lecture 4 on Data Structure Array
2
Prepared by, Jesmin Akhter, Lecturer, IIT, JU 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. 1.Set DATA[N+1]:=ITEM. 2.Set LOC:=1. 3.Repeat while DATA[LOC]! =ITEM : Set LOC := LOC +1. [End of loop] 4.If LOC = N+1, then : Write : ITEM is not in the array DATA. Else : Write : LOC is the location of ITEM. 5.Exit.
3
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 p k is the probability that ITEM appears in DATA[k], and q is the probability that ITEM does not appears in DATA. –Then p 1 + p 2 + p 3 + p 4 + … p n + q = 1 (Total probability) Average number of comparisons can be calculated by- –f(n) = 1. p 1 + 2. p 1 + 3. p 1 + ……………….+ n. p n + (n+1). q –Let, q is very small q 0 and item appears in equal probability then p i = 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
4
Prepared by, Jesmin Akhter, Lecturer, IIT, JU Binary Search Algorithm BINARY(DATA, LB, UB, ITEM, LOC) 1.Set BEG=LB; END=UB; and MID=INT((BEG+END)/2). 2.Repeat step 3 and 4 while BEG ≤ END and DATA[MID] ≠ ITEM 3.If ITEM < DATA[MID] then Set END= MID + 1 Else: Set BEG= MID-1 [end of if structure] 4.Set MID= INT((BEG+END)/2) [End of step 2 loop] 5.If ITEM = DATA[MID] then Set LOC= MID Else: Set LOC= NULL [end of if structure] 6.Exit.
5
Prepared by, Jesmin Akhter, Lecturer, IIT, JU Binary Search example (Seek for 123)
6
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/2 K …. 1 –How many steps ?
7
Prepared by, Jesmin Akhter, Lecturer, IIT, JU Binary Search - Complexity Worst case: –N/2 K = 1 i.e. 2 K = N –Which gives K=log 2 N steps, which is O(log 2 (N)) –This is considered very fast when compared to linear
8
Prepared by, Jesmin Akhter, Lecturer, IIT, JU Binary Search - Complexity Average case: –1st iteration: 1 possible value –2 nd iteration: 2 possible values (left or right half) –3 rd iteration: 4 possible values (left of left, right of left, right of right, right of left) –i th iteration: 2 i-1 possible values
9
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*2 i-1 ) = O (log N)
10
Prepared by, Jesmin Akhter, Lecturer, IIT, JU 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] A[3, 1]A[3, 2]A[3, 3] A[1, 1]A[1, 2]A[1, 3] A[2, 2]A[2, 1]A[2, 3] 123123 123123 Rows Columns Fig: Two dimensional 3 x 3 array A
11
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. 1.Repeat steps 2 to 4 for I =1 to M: 2.Repeat steps 3 to 4 for J =1 to N: 3.Set C[I, J]:=0 4.Repeat for K =1 to P: 5.C[I, J]:= C[I, J]:+A[I, K]*B[K, J] 6.Exit See solved problem 4.12.
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.