Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Arrays - Algorithms and Applications in Java - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Algorithms and Applications in Java which includes Greedy Method, Divide and Conquer, Dynamic Programming, Backtracking, Branch and Bound, Integer Programming, Neural Networks, Genetic Algorithms, Tabu Search etc.Key important points are: Arrays, Array Representation, Dimensional Array, Contiguous Memory Locations, Space Overhead, 2d Arrays, Array of Rows, Number of Rows, Array-Of-Arrays Representation, Memory Block

Typology: Slides

2012/2013

Uploaded on 03/27/2013

agarkar
agarkar 🇮🇳

4.3

(26)

380 documents

1 / 24

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Arrays
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18

Partial preview of the text

Download Arrays - Algorithms and Applications in Java - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

Arrays

1D Array Representation In Java, C, and C++

  • 1-dimensional array x = [a, b, c, d]
  • map into contiguous memory locations

Memory

a b c d

start

  • location(x[i]) = start + i

2D Arrays

The elements of a 2-dimensional array a declared as:

int [][]a = new int[3][4];

may be shown as a table

a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3]

Rows Of A 2D Array

a[0][0] a[0][1] a[0][2] a[0][3] row 0

a[1][0] a[1][1] a[1][2] a[1][3] row 1

a[2][0] a[2][1] a[2][2] a[2][3] row 2

2D Array Representation In Java, C, and C++

view 2D array as a 1D array of rows x = [row0, row1, row 2] row 0 = [a,b, c, d] row 1 = [e, f, g, h] row 2 = [i, j, k, l] and store as 4 1D arrays

2-dimensional array x a, b, c, d e, f, g, h i, j, k, l

2D Array Representation In Java, C, and C++

x.length = 3 x[0].length = x[1].length = x[2].length = 4

a b c d e f g h

i j k l

x[]

Array Representation In Java, C, and C++

  • This representation is called the array-of-arrays representation.
  • Requires contiguous memory of size 3, 4, 4, and 4 for the 4 1D arrays.
  • 1 memory block of size number of rows and number of rows blocks of size number of columns

a b c d e f g h

i j k l

x[]

Row-Major Mapping

  • Example 3 x 4 array:

a b c d e f g h i j k l

  • Convert into 1D array y by collecting elements by rows.
  • Within a row elements are collected from left to right.
  • Rows are collected from top to bottom.
  • We get y[] = {a, b, c, d, e, f, g, h, i, j, k, l}

row 0 row 1 row 2 … row i

Space Overhead

4 bytes for start of 1D array + 4 bytes for length of 1D array + 4 bytes for c (number of columns) = 12 bytes

(number of rows = length /c)

row 0 row 1 row 2 … row i

Disadvantage

Need contiguous memory of size rc.

Matrix

Table of values. Has rows and columns, but numbering begins at 1 rather than 0. a b c d row 1 e f g h row 2 i j k l row 3

  • Use notation x(i,j) rather than x[i][j].
  • May use a 2D array to represent a matrix.

Shortcomings Of Using A 2D

Array For A Matrix

  • Indexes are off by 1.
  • Java arrays do not support matrix operations such as add, transpose, multiply, and so on. - Suppose that x and y are 2D arrays. Can’t do x + y, x –y, x * y, etc. in Java.
  • Develop a class Matrix for object-oriented support of all matrix operations. See text.

Diagonal Matrix

  • x(i,j) is on diagonal iff i = j
  • number of diagonal elements in an n x n matrix is n
  • non diagonal elements are zero
  • store diagonal only vs n 2 whole Docsity.com

Lower Triangular Matrix

An n x n matrix in which all nonzero terms are either on or below the diagonal.

  • x(i,j) is part of lower triangle iff i >= j.
  • number of elements in lower triangle is 1 + 2 + … + n = n(n+1)/2.
  • store only the lower triangle