Top Banner
Data Structures and Algorithms(12) Instructor: Ming Zhang Textbook Authors: Ming Zhang, Tengjiao Wang and Haiyan Zhao Higher Education Press, 2008.6 (the "Eleventh Five-Year" national planning textbook) https://courses.edx.org/courses/PekingX/04830050x/2T2014/ Ming Zhang "Data Structures and Algorithms"
22

Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

Mar 16, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

Data Structures and Algorithms(12)

Instructor: Ming ZhangTextbook Authors: Ming Zhang, Tengjiao Wang and Haiyan Zhao

Higher Education Press, 2008.6 (the "Eleventh Five-Year" national planning textbook)

https://courses.edx.org/courses/PekingX/04830050x/2T2014/

Ming Zhang "Data Structures and Algorithms"

Page 2: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

2

目录页

Ming Zhang “Data Structures and Algorithms”

Chapter 12

Advanced Data

Structure

Chapter 12 Advanced Data Structure

• 12.1 Multidimensional array

• 12.1.1 Basic Concepts

• 12.1.2 Structure of Array

• 12.1.3 Storage of Array

• 12.1.4 Declaration of Array

• 12.1.5 Special Matrices Implemented by Arrays

• 12.1.6 Sparse Matrix

• 12.2 Generalized List

• 12.3 Storage management

• 12.4 Trie

• 12.5 Improved BST

Page 3: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

3 Ming Zhang “Data Structures and Algorithms”

Basic Concepts

• Array is an ordered sequence with

fixed number of elements and type.

• The size and type of static array

must be specified at compile time

• Dynamic array is allocated memory

at runtime

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 4: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

44 Ming Zhang “Data Structures and Algorithms”

Basic Concepts

• Multidimensional array is an extension of one-

dimensional array (vector).

• Vector of vectors make up an multidimensional

array.

• Represented as

ELEM A[c1..d

1][c

2..d

2]…[c

n..d

n]

• ci and d

i are upper and lower bounds of the

indices in the i-th dimension. Thus, the total

number of elements is:

n

i

ii cd1

)1(

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 5: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

55 Ming Zhang “Data Structures and Algorithms”

d1=3,d2=5

d1

d2

a[1][1]

d1

d2

d3

a[1][3][5]

Structure of Array

2-dimensional array 3-dimensional array

d1[0..2], d2[0..3], d3[0..1] are the three dimensions respectively

d1=3,d2=4, d3=2

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 6: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

6 Ming Zhang “Data Structures and Algorithms”

Storage of Array

• Memory is one-dimensional, so arrays are

stored linearly

• Stored row by row (row-major)

• Stored column by column (column-major)

X=

1 2 3

4 5 6

7 8 9

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 7: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

7 Ming Zhang “Data Structures and Algorithms”

Row-Major in Pascal

a112

a113

… a11n

a122

a123

… a12n

a1m2

a1m3

… a1mn

…………………………

a211

a212

a213

… a21n

a221

a222

a223

… a22n

…………………………

a2m1

a2m2

a2m3

… a2mn

┇a

k11a

k12a

k13… a

k1n

ak21

ak22

ak23

… ak2n

…………………………

akm1

akm2

akm3

… akmn

a111

a121

a1m1

a[1..k,1..m,1..n]

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 8: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

8

目录页

Ming Zhang “Data Structures and Algorithms”

Chapter 12

Advanced Data

Structure

Column-Major in FORTRANa111 a211 a311 … ak11

a121 a221 a321 … ak21

…………………………a1m1 a2m1 a3m1 … akm1

a112 a212 a312 … ak12

a122 a222 a322 … ak22

…………………………a1m2 a2m2 a3m2 … akm2

┇a11n a21n a31n … ak1n

a12n a22n a32n … ak2n

…………………………a1mn a2mn a3mn … akmn

12.1 Multidimensional Array

a[1..k, 1..m, 1..n]

Page 9: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

99 Ming Zhang “Data Structures and Algorithms”

• C++ multidimensional array

ELEM A[d1][ d

2]…[d

n];

1 2

1 2 2 3

1

1

1 1

( [ , , , ]) ( [0,0, ,0])

[

]

( [0,0, ,0]) [ ]

n

n n

n n n

nn

i k n

i k i

loc A j j j loc A

d j d d j d d

j d j

loc A d j d j

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 10: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1010 Ming Zhang “Data Structures and Algorithms”

Special Matrices Implemented by Arrays

•Triangular matrix (upper/lower)

•Symmetric matrix

•Diagonal matrix

•Sparse matrix

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 11: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1111 Ming Zhang “Data Structures and Algorithms”

Lower Triangular Matrix

• One-dimensional array: list[0.. (n2+n)/2-1]

• The matrix element ai,j

is stored in

list[ (i2+i) /2 + j] (i>=j)

0

0 0

7 5 0

0 0 1 0

9 0 0 1 8

0 6 2 2 0 7

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 12: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1212 Ming Zhang “Data Structures and Algorithms”

Symmetric Matrix

• Satisfies that ai,j

= aj,i

, 0 ≤ i, j < n

The matrix on the right is a (symmetric) adjacent

matrix for a undirected graph

• Store the lower triangle in a 1-dimensional

array

sa[0..n (n+1) /2-1]

•There is a one-to-one mapping between sa[k] and ai,j

:

3 15

3 4

4

0 0

0 0

0 0

0 0

6

15 6

jijii

jiijjk

,2/)1(

,2/)1(

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 13: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1313 Ming Zhang “Data Structures and Algorithms”

Diagonal Matrix

• Diagonal matrix: all non-zero elements are

located at diagonal lines.

• Band matric: a[i][j] = 0 when |i-j| > 1

• A band matrix with bandwidth 1 is shown as below

a0,0

a1,1

a0,1

a1,0

an-1,n-2

an-1,n-1

an-2,n-1

a1,2

0

0

……

……

……

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 14: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

14 Ming Zhang “Data Structures and Algorithms”

Sparse Matrix

• Few non-zero elemens, and these elements

distribute unevenly

6 7

0 0 0 7 0 0 5

0 15 0 0 0 0 0

0 0 0 6 0 17 0A

0 78 0 0 0 22 0

11 0 0 0 0 0 0

0 0 42 0 0 0 0

0

0

0

0

0

0

0

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 15: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

15 Ming Zhang “Data Structures and Algorithms”

• Sparse Factor

•In a m×n matrix, there are t non-zero elements, and the sparse factor

is:

•When this value is lower than 0.05, the matrix could be considered a

sparse matrix.

• 3-tuple (i, j, aij): commonly used for input/output

•i is the row number

•j is the column number

•aij

is the element value

nm

t

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 16: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1616 Ming Zhang “Data Structures and Algorithms”

Orthogonal Lists of a Sparse Matrix

• An orthogonal list consists of two sets of lists

• pointer sequense for rows and columns

• Each node has two pointers: one points to the

successor on the same row; the other points to

the successor on the same column

0 3 0

0 5 6

2 0 0

0 1 3

1 1 5

2 0 2

head pointer for columns

1 2 6

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

head p

oin

ter fo

r row

s

Page 17: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1717 Ming Zhang “Data Structures and Algorithms””

Classic Matrix Multiplication

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 18: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1818 Ming Zhang “Data Structures and Algorithms”

Time Cost of Classic Matrix Multiplication

•p=d1-c1+1,m=d3-c3+1,n=d2-c2+1;

•A is a p×m matrix, B is a m×n matrix, resulting in C, a p×n

matrix

•So the time cost of the classic matrix multiplication is O (p×m×n)

for (i=c1; i<=d1; i++)

for (j=c2; j<=d2; j++){

sum = 0;

for (k=c3; k<=d3; k++)

sum = sum + A[i,k]*B[k,j];

C[i,j] = sum;

}

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 19: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

1919 Ming Zhang “Data Structures and Algorithms”

Sparse Matrix Multiplication

3 0 0 5 0 -1 0 0 2 0 0 0

0 2 1 0-2 4 0 0

=

0 1 2

1 0 1

0 2 -2 2 1 4

-1 0

0 4

0 6

6

-1

head pointer for columns

0 0 3 0 3 5

1 1 -1

0 2 2

4

finish

head

p

oin

ter for row

s

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 20: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

2020 Ming Zhang “Data Structures and Algorithms”

Time Cost of Sparse Matrix Multiplication

• A is a p×m matrix, B is a m×n matrix, resulting

in C, a p×n matrix.

• If the number of non-zero elements in a row of A is at

most ta

• and the number of non-zero elements in a column of

B is at most tb

• Overall running time is reduced to O ( (ta+t

b)

×p×n)

• Time cost of classic matrix multiplication is O

(p×m×n)

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 21: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

2121 Ming Zhang “Data Structures and Algorithms”

Applications of Sparse Matrix

in

i

i

n

nn

xa

xaxaxaaxP

0

2

210

)( polynomial of one

indeterminate

12.1 Multidimensional Array目录页

Chapter 12

Advanced Data

Structure

Page 22: Data Structures and Algorithms 12 · 2015-02-07 · 15 Ming Zhang “Data Structures and Algorithms” •Sparse Factor •In a m×n matrix, there are t non-zero elements, and the

Data Structures and Algorithms

Thanks

the National Elaborate Course (Only available for IPs in China)http://www.jpk.pku.edu.cn/pkujpk/course/sjjg/

Ming Zhang, Tengjiao Wang and Haiyan ZhaoHigher Education Press, 2008.6 (awarded as the "Eleventh Five-Year" national planning textbook)

Ming Zhang “Data Structures and Algorithms”