Arrays - PowerPoint PPT Presentation

1 / 35
About This Presentation
Title:

Arrays

Description:

ARRAYS Week 2 * Binary Search (Cont.) BinarySearch.java Line 65 Invoke method binarySearch, using array and search key as arguments Binary Search (Cont.) BinarySearch ... – PowerPoint PPT presentation

Number of Views:74
Avg rating:3.0/5.0
Slides: 36
Provided by: Amal156
Category:
Tags: arrays | binary | linear | search

less

Transcript and Presenter's Notes

Title: Arrays


1
Arrays
Week 2
2
Data Structures
  • Data structure
  • A particular way of storing and organising data
    in a computer so that it can be used efficiently
  • Types of data structures
  • Based on memory allocation
  • Static (or fixed sized) data structures (Arrays)
  • Dynamic data structures (Linked lists)
  • Based on representation
  • Linear (Arrays/linked lists)
  • Non-linear (Trees/graphs)

3
Array motivation
  • You want to store 5 numbers in a computer
  • Define 5 variables, e.g. num1, num2, ..., num5
  • What, if you want to store 1000 numbers?
  • Defining 1000 variables is a pity!
  • Requires much programming effort
  • Any better solution?
  • Yes, some structured data type
  • Array is one of the most common structured data
    types
  • Saves a lot of programming effort (cf. 1000
    variable names)

4
What is an Array?
  • A collection of data elements in which
  • all elements are of the same data type, hence
    homogeneous data
  • An array of students marks
  • An array of students names
  • An array of objects (OOP perspective!)
  • elements (or their references) are stored at
    contiguous/ consecutive memory locations
  • Array is a static data structure
  • An array cannot grow or shrink during program
    execution its size is fixed

5
Basic concepts
  • Array name (data)
  • Index/subscript (0...9)
  • The slots are numbered sequentially starting at
    zero (Java, C)
  • If there are N slots in an array, the index will
    be 0 through N-1
  • Array length N 10
  • Array size N x Size of an element 40
  • Direct access to an element

6
Homogeneity
Index
  • All elements in the array must have the same data
    type

Value
Value
Index
Index
Value
Not an array
7
Contiguous Memory
  • Array elements are stored at contiguous memory
    locations
  • No empty segment in between values (3 5 are
    empty not allowed)

Index
Value
Index
Value
8
Declaring and Creating Arrays
  • Declaring and Creating arrays
  • Arrays are objects that occupy memory
  • Created dynamically with keyword new
  • int c new int 12
  • Equivalent to int c // declare array
    variable c new int 12 // create array
  • We can create arrays of objects too
  • String b new String 100

9
Using Arrays
  • Array_nameindex
  • For example, in Java
  • System.out.println(data4) will display 0
  • data3 99 will replace -3 with 99

10
Using Arrays
  • Array_nameindex
  • For example, in Java
  • System.out.println(data4) will display 0
  • data3 99 will replace -3 with 99

11
Using Arrays
  • Using an array initializer
  • Use initializer list
  • Items enclosed in braces ()
  • Items in list separated by commas
  • int n 10, 20, 30, 40, 50
  • Creates a five-element array
  • Index values of 0, 1, 2, 3, 4
  • Do not need keyword new

12
Using Arrays (Cont.)
  • To declare an array follow the type with (empty)
    s
  • int grade //or
  • int grade //both declare an int array
  • In Java arrays are objects so must be created
    with the new keyword
  • To create an array of ten integers
  • int grade new int10
  • Note that the array size has to be specified,
    although it can be specified with a variable at
    run-time

13
Examples Using Arrays (Cont.)
  • Calculating the value to store in each array
    element
  • Initialize elements of 10-element array to even
    integers

14
Examples Using Arrays (Cont.)
InitArray.javaLine 10Declare array as an array
of intsLine 12Create 10 ints for arrayLine
16Use array index to assign array value
15
Examples Using Arrays (Cont.)
16
Examples Using Arrays (Cont.)
  • Summing the elements of an array
  • Array elements can represent a series of values
  • We can sum these values

17
Some more concepts
  • data -1 always illegal
  • data 10 illegal   (10 gt upper bound)
  • data 1.5 always illegal
  • data 0 always OK
  • data 9 OK
  • Q. What will be the output of?
  • data5  10
  • data3 data3 10

18
Arrays Dimensionality
  • One dimensional (just a linear list)
  • e.g.,
  • Only one subscript is required to access an
    individual element
  • Two dimensional (matrix/table)
  • e.g., 2 x 4 matrix (2 rows, 4 columns)

Col 0 Col 1 Col 2 Col 3
Row 0 20 25 60 40
Row 1 30 15 70 90
19
Multidimensional arrays
  • Multidimensional arrays
  • Tables with rows and columns
  • Two-dimensional array
  • Declaring two-dimensional array b22
  • int b 1, 2 , 3, 4
  • 1 and 2 initialize b00 and b01
  • 3 and 4 initialize b10 and b11
  • int b 1, 2 , 3, 4, 5
  • row 0 contains elements 1 and 2
  • row 1 contains elements 3, 4 and 5

20
Multidimensional arrays (Cont.)
  • Creating multidimensional arrays
  • Can be allocated dynamically
  • 3-by-4 array
  • int b b new int 3 4
  • Rows can have different number of columns
  • int b b new int 2 // allocate
    rows b 0 new int 5 // allocate row 0
    b 1 new int 3 // allocate row 1

21
Multidimensional arrays (Cont.)
Column 0
Column 1
Column 2
Column 3
Row 0
a 0 0
a 0 1
a 0 2
a 0 3
Row 1
a 1 0
a 1 1
a 1 2
a 1 3
Row 2
a 2 0
a 2 1
a 2 2
a 2 3
Column index
Row index
Array name
22
Multidimensional arrays (Cont.)
InitArray.javaLine 16Declare array1 with six
initializers in two sublists Line 17Declare
array2 with six initializers in three sublists
23
Multidimensional arrays (Cont.)
InitArray.javaLine 34arrayrow.length returns
number of columns associated with row subscript
Line 35Use double-bracket notation to access
two-dimensional array values
24
Searching Arrays Linear Search and Binary Search
  • Searching
  • Finding elements in large amounts of data
  • Determine whether array contains value matching
    key value
  • Linear searching
  • Binary searching

25
Searching Arrays Linear Search and Binary Search
(Cont.)
  • Linear search
  • Compare each array element with search key
  • If search key found, return element index
  • If search key not found, return 1 (invalid
    index)
  • Works best for small or unsorted arrays
  • Inefficient for larger arrays

26
Linear Search
LinearSearch.javaLine 11Declare array of ints
27
Linear Search(Cont.)
LinearSearch.javaLines 39-42Allocate 100 ints
for array and populate array with even ints
Line 50Loop through arrayLines 53-54If
array element at index matches search key, return
index
28
Linear Search(Cont.)
LinearSearch.javaLine 61 Invoked when user
presses Enter Line 68Invoke method
linearSearch, using array and search key as
arguments
29
Binary Search
  • Binary search
  • Efficient for large, sorted arrays
  • Eliminates half of the elements in search through
    each pass
  • Compare middle array element to search key
  • If element equals key
  • Return array index
  • If element is less than key
  • Repeat search on first half of array
  • If element is greater then key
  • Repeat search on second half of array
  • Continue search until
  • element equals search key (success)
  • Search contains one element not equal to key
    (failure)

30
Binary Search (Cont.)
BinarySearch.javaLine 14Declare array of ints
31
Binary Search (Cont.)
BinarySearch.javaLines 48-51Allocate 15 ints
for array and populate array with even
ints Line 56Invoked when user presses
Enter
32
Binary Search (Cont.)
BinarySearch.javaLine 65Invoke method
binarySearch, using array and search key as
arguments
33
Binary Search (Cont.)
BinarySearch.javaLines 93-94If search key
matches middle array element, return element
indexLines 97-98If search key is less than
middle array element, repeat search on first
array halfLines 101-102If search key is greater
than middle array element, repeat search on
second array halfLines 112-137Method
build-Output displays array contents being
searched
34
Binary Search (Cont.)
BinarySearch.javaLine 128Display an asterisk
next to middle element
35
Binary Search (Cont.)
Write a Comment
User Comments (0)
About PowerShow.com