Arrays … The Sequel Applications and Extensions

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

1 Arrays … The Sequel Applications and Extensions Chapter 10.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 7- 1 Overview 7.1 Introduction to Arrays 7.2 Arrays in Functions 7.3.
Searching and Sorting an Array 4 Searching and sorting are two fundamental algorithms often implemented with arrays –Search an array to determine the location.
CHAPTER 10 ARRAYS II Applications and Extensions.
Chapter 6: Arrays Java Software Solutions for AP* Computer Science
Copyright © 2012 Pearson Education, Inc. Chapter 8: Searching and Sorting Arrays.
Arrays.
Chapter 6 C Arrays Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc. Arrays are data structures.
Arrays Data Structures - structured data are data organized to show the relationship among the individual elements. It usually requires a collecting mechanism.
C++ for Engineers and Scientists Third Edition
Chapter 8 Arrays and Strings
Programming Logic and Design Fourth Edition, Comprehensive
Searching and Sorting Arrays
 2007 Pearson Education, Inc. All rights reserved C Arrays.
1 Techniques of Programming CSCI 131 Lecture 29 Search.
Chapter 6Java: an Introduction to Computer Science & Programming - Walter Savitch 1 l Array Basics l Arrays in Classes and Methods l Programming with Arrays.
Chapter 7: Arrays. In this chapter, you will learn about: One-dimensional arrays Array initialization Declaring and processing two-dimensional arrays.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 8: Searching and Sorting Arrays.
Copyright © 2012 Pearson Education, Inc. Chapter 8: Searching and Sorting Arrays.
Chapter 8 Arrays and Strings
Copyright © 2015, 2012, 2009 Pearson Education, Inc., Publishing as Addison-Wesley All rights reserved. Chapter 8: Searching and Sorting Arrays.
Chapter 2 ARRAYS.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
Lecture 7 Introduction to Programming in C Arne Kutzner Hanyang University / Seoul Korea.
C++ for Engineers and Scientists Second Edition Chapter 11 Arrays.
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 Search and Sort ©Rick Mercer. Outline Understand how binary search finds elements more quickly than sequential search Sort array elements Implement.
IN THE NAME OF ALLAH WHO IS THE MOST BENEFICENT AND MOST MERCIFUL.
12/15/2015Engineering Problem Solving with C++, Second Edition, J. Ingber 1 Engineering Problem Solving with C++, Etter Chapter 6 One-Dimensional Arrays.
 2007 Pearson Education, Inc. All rights reserved C Arrays.
1 One Dimensional Arrays Chapter 11 2 "All students to receive arrays!" reports Dr. Austin. Declaring arrays scores :
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
1 Chapter 13-2 Applied Arrays: Lists and Strings Dale/Weems.
1 Chapter 13 Applied Arrays: Lists and Strings Dale/Weems/Headington.
Searching and Sorting Searching: Sequential, Binary Sorting: Selection, Insertion, Shell.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2008 Pearson Education, Inc., Upper.
Arrays Chapter 7. MIS Object Oriented Systems Arrays UTD, SOM 2 Objectives Nature and purpose of an array Using arrays in Java programs Methods.
1 Applied Arrays Lists and Strings Chapter 12 2 Applying What You Learn Searching through arrays efficiently Sorting arrays Using character arrays as.
Arrays Declaring arrays Passing arrays to functions Searching arrays with linear search Sorting arrays with insertion sort Multidimensional arrays Programming.
SEQUENTIAL AND OBJECT ORIENTED PROGRAMMING Arrays.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 7A Arrays (Concepts)
Chapter 16: Searching, Sorting, and the vector Type.
1 Multidimensional Arrays Chapter 13 2 The plural of mongoose starts with a "p" Initializing a multidimensional array Processing by.
Arrays Chapter 7.
Searching and Sorting Arrays
Chapter 16: Searching, Sorting, and the vector Type
Arrays Chapter 7.
An Introduction to Programming with C++ Sixth Edition
Introduction to Search Algorithms
Computer Programming BCT 1113
Chapter 7 Part 1 Edited by JJ Shepherd
Chapter 5: Arrays: Lists and Tables
String in C++ A string is an array of characters which contains a non-printing null character ‘\0’ ( with ASCII value 0 ) marking its end. A string.
Arrays and Strings Chapter 9.
Searching and Sorting Arrays
Review of Arrays and Pointers
Standard Version of Starting Out with C++, 4th Edition
Search,Sort,Recursion.
Data Structures (CS212D) Week # 2: Arrays.
Arrays Chapter 7.
Arrays Week 2.
Engineering Problem Solving with C++, Etter
Searching and Sorting Arrays
Search,Sort,Recursion.
Searching and Sorting Arrays
C++ Array 1.
ICS103: Programming in C Searching, Sorting, 2D Arrays
Arrays.
Presentation transcript:

Arrays … The Sequel Applications and Extensions Chapter 10

Applying What You Learn Searching through arrays efficiently Sorting arrays Using character arrays as "STRINGS" strings … get it? hahahaha

Lists Defn => A collection of homogeneous components linear collection variable length collection Length <=> the actual number of values stored in the list Example -- a file of time card information Joe, 40, Clyde, 38.5, Sniudly, 42.75 ...

Lists Arrays can be used to implement a list declare the array large keep track of how many elements used We often do operations on the lists create a list, add an item, delete an item print the list, search the list for a value sort the list A list of numbers scores : 85 79 92 57 68 80 . . . 0 1 2 3 4 5 98 99

Sequential Search Consider the list unordered (not sorted) For a function to search for a targert we must specify name of the array to be searched length of the list (number of array elements) a flag parameter which tells whether or not the search was successful an index value to be returned which tells where in the list the item was found scores 5 boolean & found int & location scores : 85 79 92 57 68 80 . . . 0 1 2 3 4 5 98 99

Sequential Search Algorithm example Note use of reference parameters for the found flag and the location void search (int list[ ], int length, int target, boolean & found, int &location) { location = 0; while ((location < length) && (target != list[location])) location++; found = (index < length); } // if found == TRUE, location OK . . . search (scores, 5, 92, found_it, where_its_at); scores : 85 79 92 57 68 80 . . . 0 1 2 3 4 5 98 99

Sorted List -- Faster Search Sorted list => components arranged in order alphabetical numerically ascending or descending Advantage of a sorted list need to search only until the value found is larger than target value

Sorting Means arranging the list elements into some order (for instance, strings into alphabetical order, or numbers into ascending or descending order). Dale Nell Weems Chip Headington Mark Cooper Sonia Huang Jeff Cooper Sonia Dale Nell Headington Mark Huang Jeff Weems Chip sorting

Sorting Algorithm Make a pass through the list, look for smallest number list 1 : 85 79 92 57 68 80 . . . list 2 :

Sorting Algorithm Make a pass through the list, look for smallest number Write that number in another list, cross it off first list list 1 : 85 79 92 57 68 80 . . . list 2 : 57

Sorting Algorithm Make a pass through the list, look for smallest number Write that number in another list, cross it off first list Repeat process, always look for smallest number remaining list 1 : 85 79 92 57 68 80 . . . list 2 : 57 68

Sorting Algorithm Make a pass through the list, look for smallest number Write that number in another column, cross it off first list Repeat process, always look for smallest number remaining Stop when all numbers have been crossed off

Sequential Search in a Sorted List Note difference from previous search void search_ord ( int list[ ], int target, int length, int & index, boolean & found) { index = 0; list [length] = target; // store an item beyond end while (target > list [index]) index++; found = (index < length && ltem = = list[index]; ) Explain how the last statement works

Inserting into an Ordered List We wish to insert a new number into the list in the right position find where it goes -- look until you find a number bigger than the new number 59 length : 5 list 2 : 14 22 45 61 87

Inserting into an Ordered List We wish to insert a new number into the list in the right position find where it goes -- look until you find a number bigger than the new number shift that number all the rest of the elements down 59 length : 5 list 2 : 14 22 45 61 87 list 2 : 14 22 45 61 87

Inserting into an Ordered List We wish to insert a new number into the list in the right position find where it goes -- look until you find a number bigger than the new number shift that number all the rest of the elements down insert the new number in the vacated spot 59 length : 5 list 2 : 14 22 45 59 61 87 list 2 : 14 22 45 61 87

Inserting into an Ordered List We wish to insert a new number into the list in the right position find where it goes -- look until you find a number bigger than the new number shift that number all the rest of the elements down insert the new number in the vacated spot be sure to increment the length length : 5 length : 6 list 2 : 14 22 45 59 61 87

Binary Search in an Ordered List Examines the element in the middle of the array. Is it the sought item? If so, stop searching. Is the middle element too small? Then start looking in second half of array. Is the middle element too large? Then begin looking in first half of the array. Repeat the process in the half of the list that should be examined next. Stop when item is found, or when there is nowhere else to look and it has not been located.

String Library Routines String assignment String comparison: returns -1 if s1 < s2 returns 0 if they are equal returns +1 if s1 > s2 Returns length of the string

Using typedef with Arrays Specify an array type this can be used throughout program helps program self document Example : typedef char default_string [80]; . . . defalt_string fname, descrip; void reverse (default_string s);

Two dimensional Arrays A collection of components all of the same type structured in TWO dimensions each component accessed by a PAIR of indices representing the component’s position in each dimension 0 1 2 3 4 1 2 3 Which cell is Location (2,3) ?

Declaring Two Dimensional Arrays Syntax: data_type array_name [row_dim][col_dim]; Example: First element is int_table[0][0] Last element is int_table[4][3] int int_table [5][4]; 0 1 2 3 4 1 2 3

Processing Two-D Arrays Arrays processed in some pattern random along rows along columns whole array We will use the declaration shown below: int int_table [5][4]; int row, col;

Processing Two-D Arrays What does the routine below do with the array? What should we name the function? total_a_row

Processing Two-D Arrays What does this routine below do with the array? What should we name the function? total_column

Processing Two-D Arrays This function initializes an array. Fill in the blanks with the correct identifiers 3 col table value

Printing a Table We must process each row, item by item Which will be the inner loop? Which will be the outer loop? The LCV of the inner loop must be the one which changes the most often row What goes here? col endl

Passing Arrays as Parameters Recall declaration for 1-D array we didn’t specify the size in the brackets we sent the size as a separate parameter Recall name of the array is a pointer constant tells where the array starts in memory this is what is passed to the function void whatever ( float num_list [ ], int size);

Passing 2-D Arrays as Parameters For a 2-D array, declare We are sending the starting address also how many elements it takes to jump us to the next row that is -- the number of columns Note that this could be for an array for ANY number of rows, but exactly 4 columns As with 1-D, we also send another parameter for the function as a limiting value void whatever ( float num_table [ ][4], int num_rows);

Alternate 2-D Array Definition Think of the 2-D array as an array of arrays Example Each element of renters is an array of rent_pmts typedef float rent_pmts [12]; rent_pmts renters [6]; 0 1 … 10 11 1 … 5

Multidimensional Arrays C++ arrays not limited to two dimensions limitation is amount of memory const int NUM_BLDGS = 10; const int APTS_PER_BLDG = 12; float apt_pmts [NUM_BLDGS][6][APTS_PER_BLDG];

Multidimensional Arrays C++ arrays not limited to two dimensions limitation is amount of memory const int NUM_BLDGS = 10; const int APTS_PER_BLDG = 12; float apt_pmts [NUM_BLDGS][6][APTS_PER_BLDG]; This gives a 3-D array with 720 items apt_pmt [bldg][tennant][apt]

Testing and Debugging Initialize all components of an array no guarantee of what is there to start with Use the same number of indeces as the declaration of array Make sure indeces are in order don’t reverse row and column references

Testing and Debugging Use meaningful identifiers for the array name and indeces Double check upper and lower bounds on indeces don’t walk off the edge of the array When declaring multidimensional array as a formal parameter must state sizes of all but first dimension

Testing and Debugging When calling function with array as parameter sizes of multi-dim actual parameter must match exactly sizes of formal Use typedef statement to define multi-dimensional array type use this for actual and formal parameter declaration