outline lecture revise arrays entering into an array totalling values in an array sequential search

26
Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Upload: katelyn-mccann

Post on 28-Mar-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Page 2: 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

Page 3: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Lets look at this array in detail What do you notice about the array ?

Is the data organised in any particular way?

0 1 2 3 4 5 6 7 8 9

32 34 56 32 12 67 21 34 21 45

Page 4: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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?

Page 5: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 6: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Entering data into an array 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

Read

R1 10

1

EnterA(R )

R

B

Page 7: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Accumulating the elements of array 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

R1 5

1

Sum = Sum + A(R )

R

B

Calc

Page 8: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 9: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 10: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 11: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 12: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 13: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Target ? ?

Page 14: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Sequential search (linear search) Problem :- we want to search for a

given element in a list. Do we know where the target element

occurs?.

Page 15: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 16: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

A simple search method is as follows: p193

Algorithm1. R = 1

2. While Array(R ) <> Target

R = R + 1

WhileEnd

3. If R > N

Then

Print “Element Not Found”

Else

Print Array (R )

Page 17: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Flowchart for Sequential Search P193

R = 1

WhileTarget

Array(R ) and R<=N

R= R+1

If R > N

Print

Array(R )Print

Element Not Found

TF

Page 18: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Flowchart for Sequential Search using for loop

J= J+1

If Targetfound

Print

Array(R )Print

Element Not Found

TF

J1 10

1

If target not found

Page 19: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 20: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Demonstration http://www.cosc.canterbury.ac.nz/peopl

e/mukundan/dsal/LSearch.html

The more comparisons he longer it takes – time!

Page 21: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 22: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 23: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 24: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

Task :- in pairs – how many comparisons ?

9 5 8 4 7

9 5 8 4 7

An iterative sequential search of an array that {a) finds its target; (b) does not find its target

(a) A search for 8 (b) A search for 6

8 <> 9 , so continue searching …

9 5 8 4 7

Look at 9 Look at 9

6 <> 9 , so continue searching …Look at 5

9 5 8 4 7

Look at 5

Page 25: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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

Page 26: Outline lecture Revise arrays Entering into an array Totalling values in an array Sequential search

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