Outline lecture Revise arrays Entering into an array

Slides:



Advertisements
Similar presentations
Outline lecture Revise arrays Entering into an array
Advertisements

Last week lecture Loops (lets look at for loop again) Dry Runs
Chapter 7: Arrays In this chapter, you will learn about
Designing Algorithms Csci 107 Lecture 4. Outline Last time Computing 1+2+…+n Adding 2 n-digit numbers Today: More algorithms Sequential search Variations.
CS0007: Introduction to Computer Programming Array Algorithms.
Chapter 19: Searching and Sorting Algorithms
1 Chapter 11 l Basics of Recursion l Programming with Recursion Recursion.
Introduction to Computers and Programming Lecture 8: More Loops New York University.
CS107 Introduction to Computer Science Lecture 5, 6 An Introduction to Algorithms: List variables.
 2003 Prentice Hall, Inc. All rights reserved Sorting Arrays Sorting data –Important computing application –Virtually every organization must sort.
Elementary Data Structures and Algorithms
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
A Level Computing#BristolMet Session Objectives U2#S6 MUST identify different data types used in programming aka variable types SHOULD describe each data.
 Data is always stored in a logical way so that it can be accessed efficiently. Ex:A telephone directory  The way data is stored is called the structure.
Chapter 19: Searching and Sorting Algorithms
1 Searching. 2 Searching Searching refers to the operation of finding an item from a list of items based on some key value. Two Searching Methods (1)
DATA STRUCTURE & ALGORITHMS (BCS 1223) CHAPTER 8 : SEARCHING.
Week # 2: Arrays.  Data structure  A particular way of storing and organising data in a computer so that it can be used efficiently  Types of data.
CHAPTER 8 SEARCHING CSEB324 DATA STRUCTURES & ALGORITHM.
CHAPTER EIGHT ARRAYS © Prepared By: Razif Razali1.
1. Searching The basic characteristics of any searching algorithm is that searching should be efficient, it should have less number of computations involved.
Searching Topics Sequential Search Binary Search.
CMPT 120 Topic: Searching – Part 2 and Intro to Time Complexity (Algorithm Analysis)
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 23, 2005 Lecture Number: 11.
LECTURE 9 CS203. Execution Time Suppose two algorithms perform the same task such as search (linear search vs. binary search) and sorting (selection sort.
Web Database Programming Using PHP
16 Searching and Sorting.
Review Array Array Elements Accessing array elements
Applied Discrete Mathematics Week 2: Functions and Sequences
REPETITION CONTROL STRUCTURE
Data Structures I (CPCS-204)
Indexing Goals: Store large files Support multiple search keys
Web Database Programming Using PHP
IGCSE 6 Cambridge Effectiveness of algorithms Computer Science
CMPT 120 Topic: Searching – Part 1
GC211Data Structure Lecture2 Sara Alhajjam.
Lecture – 2 on Data structures
More Computational Theory
COSC160: Data Structures Linked Lists
Algorithm Analysis CSE 2011 Winter September 2018.
Standard Algorithms Higher Computing.
Chapter 7 Arrays.
Searching.
Enough Mathematical Appetizers!
Sorting Data are arranged according to their values.
Siti Nurbaya Ismail Senior Lecturer
Control Structure Senior Lecturer
Algorithm Analysis (not included in any exams!)
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
Winter 2018 CISC101 12/1/2018 CISC101 Reminders
Chapter 8 Arrays Objectives
Sorting Data are arranged according to their values.
Review of Arrays and Pointers
Applied Discrete Mathematics Week 6: Computation
Hash Tables Chapter 12 discusses several ways of storing information in an array, and later searching for the information. Hash tables are a common.
25 Searching and Sorting Many slides modified by Prof. L. Lilien (even many without an explicit message indicating an update). Slides added or modified.
Introduction to Problem Solving and Control Statements
24 Searching and Sorting.
Data Structures (CS212D) Week # 2: Arrays.
Basics of Recursion Programming with Recursion
Arrays Week 2.
Language Constructs Construct means to build or put together. Language constructs refers to those parts which make up a high level programming language.
Hash Tables Chapter 12 discusses several ways of storing information in an array, and later searching for the information. Hash tables are a common.
Revision of C++.
Data Structures & Algorithms
Basic Concepts of Algorithm
CS210- Lecture 16 July 11, 2005 Agenda Maps and Dictionaries Map ADT
WJEC GCSE Computer Science
Data Structures Using C++ 2E
CMPT 225 Lecture 10 – Merge Sort.
Presentation transcript:

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

Lets look at this array in detail What do you notice about the array ? 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 ) A simple search method is as follows: p193

Flowchart for Sequential Search P193 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

Task :- in pairs – how many comparisons ? 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 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