Arrays. Arrays as ADTs An array is an Abstract Data Type –The array type has a set of values The values are all the possible arrays –The array type has.

Slides:



Advertisements
Similar presentations
Arrays and records Programming Language Design and Implementation
Advertisements

Arrays and ArrayLists Ananda Gunawardena. Introduction Array is a useful and powerful aggregate data structure presence in modern programming languages.
Elementary Data Types Prof. Alamdeep Singh. Scalar Data Types Scalar data types represent a single object, i.e. only one value can be derived. In general,
Arrays Chapter 6. Outline Array Basics Arrays in Classes and Methods Sorting Arrays Multidimensional Arrays.
Chapter 6 Structured Data Types Arrays Records. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Definitions data type –collection of data objects.
Arrays.
For use of IST410 Students only Arrays-1 Arrays. For use of IST410 Students only Arrays-2 Objectives l Declaring arrays l Instantiating arrays l Using.
1 Problem Solving Abstraction Oftentimes, different real-world problems can be modeled using the same underlying idea Examples: Runtime storage, Undo operation.
Topic 9 – Introduction To Arrays. CISC105 – Topic 9 Introduction to Data Structures Thus far, we have seen “simple” data types. These refers to a single.
Case, Arrays, and Structures. Summary Slide  Case Structure –Select Case - Numeric Value Example 1 –Select Case - String Value Example  Arrays –Declaring.
Arrays  Writing a program that uses a large amount of information.  Such as a list of 100 elements.  It is not practical to declare.
ISBN Chapter 6 Data Types: Structured types.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 8 focuses on: array declaration and use passing arrays and array.
Elementary Data Types Scalar Data Types Numerical Data Types Other
Structured Data Types and Encapsulation Mechanisms to create new data types: –Structured data Homogeneous: arrays, lists, sets, Non-homogeneous: records.
Arrays Data Structures - structured data are data organized to show the relationship among the individual elements. It usually requires a collecting mechanism.
Arrays. The array data structure An array is an indexed sequence of components –Typically, the array occupies sequential storage locations –The length.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
Introduction of Arrays. Arrays Array form an important part of almost all programming language. It provides a powerful feature and can be used as such.
1 CSCE 1030 Computer Science 1 Arrays Chapter 7 in Small Java.
Chapter 9 Introduction to Arrays
Chapter 6 Structured Data Types Arrays Records. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Definitions data type –collection of data objects.
EE Data Structures and Algorithms N Radhakrishnan Assistant Professor Anna University, Chennai.
MT311 Java Application Programming and Programming Languages Li Tak Sing ( 李德成 )
Chapter 6Java: an Introduction to Computer Science & Programming - Walter Savitch 1 l Array Basics l Arrays in Classes and Methods l Programming with Arrays.
Processing Arrays Lesson 8 McManusCOP Overview One-Dimensional Arrays –Entering Data into an Array –Printing an Array –Accumulating the elements.
Data Structures Winter What is a Data Structure? A data structure is a method of organizing data. The study of data structures is particularly important.
 2004 Prentice Hall, Inc. All rights reserved. 1 Chapter 11 - JavaScript: Arrays Outline 11.1 Introduction 11.2 Arrays 11.3 Declaring and Allocating Arrays.
French Territory of St. Pierre CSE 114 – Computer Science I Arrays.
ArrayList, Multidimensional Arrays
Chapter 2 ARRAYS.
Introduction to Arrays in Java Corresponds with Chapter 6 of textbook.
Data Strcutures.
ARRAYS 1 Week 2. Data Structures  Data structure  A particular way of storing and organising data in a computer so that it can be used efficiently 
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank Carrano. ISBN © 2009 Pearson Education, Inc., Upper.
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.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
1 © 2002, Cisco Systems, Inc. All rights reserved. Arrays Chapter 7.
Java Script: Arrays (Chapter 11 in [2]). 2 Outline Introduction Introduction Arrays Arrays Declaring and Allocating Arrays Declaring and Allocating Arrays.
CPSC 252 Concrete Data Types Page 1 Overview of Concrete Data Types There are two kinds of data types: Simple (or atomic) – represents a single data item.
1 Records Record aggregate of data elements –Possibly heterogeneous –Elements/slots are identified by names –Elements in same fixed order in all records.
5. Collections Arrays Other basic data structures.NET collections Class library example.
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.
ISBN Chapter 6 Structured Data Types Array Types Associative Arrays Record Types Union Types.
JAVA: An Introduction to Problem Solving & Programming, 6 th Ed. By Walter Savitch ISBN © 2012 Pearson Education, Inc., Upper Saddle River,
 2008 Pearson Education, Inc. All rights reserved. 1 Arrays and Vectors.
Processing Arrays Lesson 9 McManusCOP Overview One-Dimensional Arrays –Entering Data into an Array –Printing an Array –Accumulating the elements.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
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.
Data Structure and Algorithm: CIT231 Lecture 3: Arrays and ADT DeSiaMore DeSiaMorewww.desiamore.com/ifm1.
Arrays. 2 The array data structure An array is an indexed sequence of components Typically, the array occupies sequential storage locations The length.
Arrays. Arrays as ADTs An array is an Abstract Data Type –The array type has a set of values The values are all the possible arrays –The array type has.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 7A Arrays (Concepts)
Chapter 9 Introduction to Arrays Fundamentals of Java.
Arrays An array is a sequence of objects all of which have the same type. The objects are called the elements of the array and are numbered consecutively.
CSI 3125, Data Types, page 1 Data types Outline Primitive data types Structured data types Strings Enumerated types Arrays Records Pointers Reading assignment.
LESSON 8: INTRODUCTION TO ARRAYS. Lesson 8: Introduction To Arrays Objectives: Write programs that handle collections of similar items. Declare array.
Data Types Chapter 6: Data Types Lectures # 11. Topics Introduction Primitive Data Types Character String Types Array Types Associative Arrays Record.
Data Types In Text: Chapter 6.
Chapter 6 – Data Types CSCE 343.
Data Structures I (CPCS-204)
Arrays (review) CSE 2011 Winter May 2018.
Array, Strings and Vectors
Introduction To Programming Information Technology , 1’st Semester
Arrays.
Arrays Week 2.
Arrays.
Course Overview PART I: overview material PART II: inside a compiler
Presentation transcript:

Arrays

Arrays as ADTs An array is an Abstract Data Type –The array type has a set of values The values are all the possible arrays –The array type has a set of operations that can be applied uniformly to each of these values The only operation is indexing Alternatively, this can be viewed as two operations: –inspecting an indexed location –storing into an indexed location –It’s abstract because the implementation is hidden: all access is via the defined operations

The array data structure An array is an indexed sequence of components –Typically, the array occupies sequential storage locations –The length of the array is determined when the array is created, and cannot be changed –Each component of the array has a fixed, unique index Indices range from a lower bound to an upper bound –Any component of the array can be inspected or updated by using its index This is an efficient operation: O(1) = constant time

Array variations I The array indices may be integers (C++, Java, C#) or other discrete data types (Pascal, Ada) The lower bound may be zero (C++, Java, C#), one (Fortran), or chosen by the programmer (Pascal, Ada) Bounds may be dynamic, that is set at run-time (Ada, C++, Java, C#) or not (Pascal) Bounds may be undefined (Ada, Java, C#)

Array variations II Multidimensional (C++), faked multidimensional (Java, Ada, Pascal, C#) Arrays may be rectangular (C++, Ada) or nonrectangular (Java, C#) Arrays may be accessed in “slices” (Java, C#, Ada, Pascal) or not (C++) Array initializations are possible (Java, C#, C++, Pascal, Ada)

Array variations III In most languages, arrays are homogeneous (all components must have the same type); in some (Lisp, Prolog) the components may be heterogeneous (of varying types) In an object-oriented language, arrays may be objects (Java, C#) or not objects (C++)

Array variations IV Whole operations –Fortran: NO -Ada and Pascal: YES (assignment of entire arrays of same size and type, not structure) -C++: NO (arrays referenced by pointers) -Java: Yes (clone and equality test) -C#: Yes (shallow clone, sort, search, copy, copyto) Arrays may carry additional information about themselves, such as type and length (Java), or may consist only of their components (C, C++) –I will use the terms reflective and non-reflective, respectively, to refer to these two types of arrays –This is not standard terminology, but it is consistent with other uses of the terms

Arrays in C# Array indices are integers –The bracket notation a[i] is used (and not overloaded) –Bracket operator performs bounds checking An array of length n has bounds 0 and n-1 Arrays are homogeneous –However, an array of an object type may contain objects of any subtype of that object For example, an array of Animal may contain objects of type Cat and objects of type Dog An array of Object may contain any type of object (but cannot contain primitives)

Arrays in C# II Arrays are objects –Arrays are allocated by new, manipulated by reference, and garbage collected int [ ] a = new int [100]; Arrays can be initialized int [ ] smallPrimes = {2,3,5,7,11,13};

Arrays in C# III Arrays are reflective –a.length is the length of array a for (int i= 0; i < a.length; i++) Console.WriteLine(a[i]); –a.GetType() is the type of array a An array of integers has type System.Int32[] An array of Strings has type System.String[]

Arrays in C# IV Here’s one way to visualize an array in C#: myArray class tag Int32[] length 4

Arrays in C# V Copying arrays int[] luckyNumbers = smallPrimes; luckyNumbers[5]=12; smallPrimes 13

Arrays in C# VI Copying arrays - The wrong way int[] luckyNumbers = smallPrimes; luckyNumbers[5]=12; smallPrimes luckyNumbers

Arrays in C# VII Copying arrays - The right way fromObject.CopyTo(toObject, fromIndex); Example: int [ ] luckyNumbers; smallPrimes.Copyto (luckyNumbers, 0); Sorting Arrays Array.Sort (smallPrimes);

Subarrays A subarray is a consecutive portion of an array C# provides no language support for subarrays To use a subarray, you must keep track of (1) the array itself, (2) the lower bound, and (3) the upper bound Typically, these will be three parameters to a method that does something with the subarray [I1055 array a subarray a[2...6]

Two-dimensional arrays I Some languages (Fortran, Pascal) support two- dimensional (2D) arrays: A two-dimensional array may be stored in computer memory in either of two ways: acb ikj egf d l h logical view rows columns acbikjegfdlh row 0row 1row 2 row major order: aiekhdfcjblg col 0col 1col 2col 3 column major order:

Two-dimensional arrays II In a 2D array, we generally consider the first index to be the row, and the second to be the column: a[row, col] 0,00,10,20,30,4 1,01,11,21,31,4 2,02,12,22,32,4 3,03,13,23,33, columns rows In most languages we don’t need to know the implementation-- we work with this abstraction

2D arrays in C# C++ and Java don’t have “real” 2D arrays, but array elements can themselves be arrays C# does support real 2D arrays –int [,] x; denotes a 2D array x of integer components We can define the above array like this: x = new int[5,8]; and treat it as a regular 2D array However, we can do fancier things than this with arrays in C#

Array Slices C# supports array of arrays int [][] jaggedArray; jaggedArray : jaggedArray[1] =

Ragged (Nonrectangular) arrays int [][] ragged = new int[4][]; for (int i = 0; i < 4; i++) { ragged[i] = new int[i + 1]; } for (int i = 0; i < 4; i++) { for (int j = 0; j < ragged[i].length; j++) { ragged[i][j] = 10 * i + j; } }

foreach Repetition Structure The foreach repetition structure is used to iterate through values in arrays No counter A variable is used to represent the value of each element foreach ( int grade in gradeArray ){ if ( grade < lowGrade ) lowGrade = grade;}

Inserting an element into an array Suppose we want to insert the value 8 into this sorted array (while keeping the array sorted) We can do this by shifting all the elements after the mark right by one location –Of course, we have to discard the 30 when we do this Moving all those elements makes this a very slow operation!

Deleting an element from an array Deleting an element is similar--again, we have to move all the elements after it This leaves a “vacant” location at the end-- we can fill it with null null Again, this is a slow operation; we don’t want to do it very often

Conclusions Arrays have the following advantages: –Accessing an element by its index is very fast (constant time) Arrays have the following disadvantages: –All elements must be of the same type (or a subtype) –The array size is fixed and can never be changed –Insertion into arrays and deletion from arrays is very slow

More info sharpcorner.com/UploadFile/mahesh/Worki ngWithArrays AM/Workin gWithArrays.aspxhttp:// sharpcorner.com/UploadFile/mahesh/Worki ngWithArrays AM/Workin gWithArrays.aspx