260 likes | 554 Views
Outline lecture . Revise arrays Entering into an array Totalling values in an array Sequential search. What is an Array. We are interested in one-dimensional arrays An array has a fixed number of elements and all elements are of the same type
E N D
Outline lecture • Revise arrays • Entering into an array • Totalling values in an array • Sequential search
What is an Array • We are interested in one-dimensional arrays • An array has a fixed number of elements and all elements are of the same type • Each box has an index which in java and C++ starts with 0 • Here is an array which holds the ages of 10 people 0 1 2 3 4 5 6 7 8 9 32 34 56 32 12 67 21 34 21 45
0 1 2 3 4 5 6 7 8 9 32 34 56 32 12 67 21 34 21 45 • Lets look at this array in detail • What do you notice about the array ? • Is the data organised in any particular way?
Examples of Arrays • Draw an array of 20 elements which contains student marks – what type will it be ? • Draw an array of 15 elements which contains student grades ranging form A-E – what type will it be?
Entering data into an array • When you enter data into an array we use a loop • What type of loop do you think we will use? • Hint – we know the number of elements there are in the array • Use a counter to keep track of how many elements are entered into the array
Entering data into an array Read • Algorithm • Loop : R = 1 to 10 • Enter A( R) • Loop end • The number of elements in array is 10 • The counter of loop (R ) allows the computer to increase the element number by 1 each time a piece of data is entered into a memory location • The computer can find a particular element in the array by using the reference number index represented by R • R = loop counter • A(R ) = element R in the A array • R • 10 • 1 Enter A(R ) R B
Accumulating the elements of array Calc • You may need to sum the elements of an array • Initialise the sum variable which contains the total to zero • The instruction Sum = Sum + A(R ) tells the computer to add the valve of element A(R ) to the old valve of the sum (Sum) and to store the result into sum memory location (Sum) • Algorithm • Loop : R = 1 to 10 • sum = Sum + A( R) • Loop end • The number of elements in array is 10 • The counter of loop (R ) allows the computer to increase the element number by 1 each time a piece of data is entered into a memory location • Sum = Sum of the elements of A • A(R ) = element R in the A array • R • 5 • 1 Sum = Sum + A(R ) R B
Why Search ? • Everyday life -We always Looking for something – builder yellow pages, universities, hairdressers • Computers can search • World wide web – • Spreadsheet – • Databases – • Large records – 1000s takes time - many comparison slow system – user wont wait long time
Search Algorithms • Different types – Sequential Search, Binary Search • Discuss - search algorithms - analyze them • Analysis of the algorithms enables programmers to decide which algorithm to use for a specific application
Some observations – Key • each item in a data set - special member that uniquely identifies the item in the data set • For e.g University - a data set which contains student records – student ID uniquely identifies each student • This unique member of the item is called Key of the item
Some observations - Key • Where can Keys of the item in a data set be used in ? • When searching the data set - for a particular item, what do we do ? • compare the key of the item for which we are searching - with the keys of the items in the data set – e.g if we looking particular student id in a list of student id exam results
Analysis of Algorithms • In addition to describing the algorithms – analyse them • What does analysis of algorithms involve ? • key comparisons • Moreover – the number of key comparisons refers to - the number of times the key of the item (in search & sort algorithms) is compared with the keys of the items in the list
Target ? • ?
Sequential search (linear search) • Problem :- we want to search for a given element in a list. • Do we know where the target element occurs?.
Sequential search (linear search) • We can have no guarantees about the order of elements in the list if (for example) insertions have been under a user’s control. • Search starts at the first element in the list and continues until either the item is found in the list - or entire list is searched
A simple search method is as follows: p193 • Algorithm • R = 1 • While Array(R ) <> Target • R = R + 1 • WhileEnd • If R > N • Then • Print “Element Not Found” • Else • Print Array (R )
Flowchart for Sequential Search P193 R = 1 While Target Array(R ) and R<=N R= R+1 If R > N F T Print Element Not Found Print Array(R )
Flowchart for Sequential Search using for loop • J • 10 • 1 If target not found J= J+1 If Target found F T Print Element Not Found Print Array(R )
Task :- in pairs • Draw an array with 10 integer values • Populate the array with 10 elements 1 5 6 3 7 8 9 5 2 3 • Write an algorithm using the sequential search technique to find the target 6 in the array • Draw a flowchart
Demonstration • http://www.cosc.canterbury.ac.nz/people/mukundan/dsal/LSearch.html The more comparisons he longer it takes – time!
Sequential search (linear search) • If the search item is found, its index (that is its location in array) is returned. If search is unsuccessful, -1 is returned • Note the sequential search does not require the list elements to be in any particular order
Sequential Search Analysis : Task – in pairs • For each iteration in the loop, the search item is compared with an element in the list,and a few other statements are executed. Loop terminates when search item is found in list • Therefore the execution of the other statement in loop is directly related to the outcome of the key comparisons
Sequential Search Analysis • When analysing a search algorithm, - count the number of key comparisons –why ? • because this number gives us the most useful information, • this criterion for counting the number of key comparisons can be applied equally well to other search algorithms
An iterative sequential search of an array that {a) finds its target; (b) does not find its target Task :- in pairs – how many comparisons ? (a) A search for 8 (b) A search for 6 Look at 9 Look at 9 9 5 8 4 7 9 5 8 4 7 8 <> 9 , so continue searching … 6 <> 9 , so continue searching … Look at 5 Look at 5 9 5 8 4 7 9 5 8 4 7
Sequential Search Analysis • Suppose the search item is in the list • Then number of key comparisons depends on where in the list the search item is located. • If search item is first element of L – make one key comparison – best case • Worst case search item is the last item – algorithm makes n comparisons
Sequential Search Analysis • If the search item Target , is the first element in list, how many one comparisons are needed? • if target is second, how many one comparisons are needed? • So if the target is the kth element in the list k comparisons are made