SlideShare a Scribd company logo
TDB1023/TCB1063 
Arrays
Arrays 
Array: a set of pairs, having index and value 
data structure 
For each index, there is a value associated with 
that index. 
representation (possible) 
implemented by using consecutive memory.
The Array ADT 
Objects: A set of pairs <index, value> where for each value of index 
there is a value from the set item. Index is a finite ordered set of one or 
more dimensions, for example, {0, … , n-1} for one dimension, 
{(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)} for two dimensions, 
etc. 
Methods: 
for all A Î Array, i Î index, x Î item, j, size Î integer 
Array Create(j, list) ::= return an array of j dimensions where list is a 
j-tuple whose kth element is the size of the 
kth dimension. Items are undefined. 
Item Retrieve(A, i) ::= if (i Î index) return the item associated with 
index value i in array A 
else return error 
Array Store(A, i, x) ::= if (i in index) 
return an array that is identical to array 
A except the new pair <i, x> has been 
inserted else return error
The Array ADT 
Objects: A set of pairs <index, value> where for each value of index 
there is a value from the set item. Index is a finite ordered set of one or 
more dimensions, for example, {0, … , n-1} for one dimension, 
{(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)} for two dimensions, 
etc. 
Methods: 
for all A Î Array, i Î index, x Î item, j, size Î integer 
Array Create(j, list) ::= return an array of j dimensions where list is a 
j-tuple whose kth element is the size of the 
kth dimension. Items are undefined. 
Item Retrieve(A, i) ::= if (i Î index) return the item associated with 
index value i in array A 
else return error 
Array Store(A, i, x) ::= if (i in index) 
return an array that is identical to array 
A except the new pair <i, x> has been 
inserted else return error
Arrays in C 
int list[5], *plist[5]; 
list[5]: five integers 
list[0], list[1], list[2], list[3], list[4] 
*plist[5]: five pointers to integers 
plist[0], plist[1], plist[2], plist[3], plist[4] 
implementation of 1-D array 
list[0] base address = a 
list[1] a + sizeof(int) 
list[2] a + 2*sizeof(int) 
list[3] a + 3*sizeof(int) 
list[4] a + 4*size(int)
Arrays in C (cont’d) 
Compare int *list1 and int list2[5] in C. 
Same: list1 and list2 are pointers. 
Difference: list2 reserves five locations. 
Notations: 
list2 - a pointer to list2[0] 
(list2 + i) - a pointer to list2[i] (&list2[i]) 
*(list2 + i) - list2[i]
Address Contents 
1228 0 
1230 1 
1232 2 
1234 3 
1236 4 
Example 
Example: 
int one[] = {0, 1, 2, 3, 4}; //Goal: print out 
address and value 
void print1(int *ptr, int rows) 
{ 
printf(“Address Contentsn”); 
for (i=0; i < rows; i++) 
printf(“%8u%5dn”, ptr+i, *(ptr+i)); 
printf(“n”); 
}
Other Data Structures 
Based on Arrays 
•Arrays: 
Polynomials: defined by a list of coefficients and 
exponents 
- degree of polynomial = the largest exponent in a 
polynomial 
en 
•Basic data structure 
•May store any type of elements 
p(x) = a xe1 +... + a x 
n 
1 
Polynomials A(X)=3X20+2X5+4, B(X)=X4+10X3+3X2+1
Polynomial ADT 
Objects: a set of ordered pairs of <ei,ai> 
where ai in Coefficients and 
ei in Exponents, ei are integers >= 0 
Methods: 
for all poly, poly1, poly2  Polynomial, coef Coefficients, expon 
Exponents 
Polynomial Zero( ) ::= return the polynomial p(x) = 0 
Boolean IsZero(poly) ::= if (poly) return FALSE 
else return TRUE 
Coefficient Coef(poly, expon) ::= if (expon  poly) return its 
coefficient else return Zero 
Exponent Lead_Exp(poly) ::= return the largest exponent in 
poly 
Polynomial Attach(poly,coef, expon) ::= if (expon  poly) return error 
else return the polynomial poly 
with the term <coef, expon> 
inserted
Polyomial ADT (cont’d) 
Polynomial Remove(poly, expon) ::= if (expon  poly) return the 
polynomial poly with the term 
whose exponent is expon deleted 
else return error 
Polynomial SingleMult(poly, coef, expon)::= return the polynomial 
poly • coef • xexpon 
Polynomial Add(poly1, poly2) ::= return the polynomial 
poly1 +poly2 
Polynomial Mult(poly1, poly2) ::= return the polynomial 
poly1 • poly2
Polynomial Addition (1) 
#define MAX_DEGREE 101 
typedef struct { 
int degree; 
float coef[MAX_DEGREE]; 
Running time? 
} polynomial; 
Addition(polynomial * a, polynomial * b, polynomial* c) 
{ 
… 
} 
advantage: easy implementation 
disadvantage: waste space when sparse
Polynomial Addition (2) 
Use one global array to store all polynomials 
A(X)=2X1000+1 
B(X)=X4+10X3+3X2+1 
2 1 1 10 3 1 
1000 0 4 3 2 0 
coef 
exp 
starta finisha startb finishb avail 
0 1 2 3 4 5 6
Polynomial Addition (2) (cont’d) 
#define MAX_DEGREE 101 
typedef struct { 
int exp; 
float coef; 
Running time? 
} polynomial_term; 
polynomial_term terms[3*MAX_DEGREE]; 
Addition(int starta, int enda, int startb, int endb, int startc, int endc) 
{ 
… 
} advantage: less space 
disadvantage: longer code
col1 col2 col3 col4 col5 col6 
15 0 0 22 0 15 
ù 
ú ú ú ú ú ú ú ú 
û 
é 
ê ê ê ê ê ê ê ê 
0 11 3 0 0 0 
0 0 0 6 0 0 
0 0 0 0 0 0 
91 0 0 0 0 0 
ë 
- 
- 
0 0 28 0 0 0 
row0 
row1 
row2 
row3 
row4 
row5 
5*3 6*6 
15/15 
8/36 
sparse matrix 
data structure? 
Sparse Matrices
Sparse Matrix ADT 
Objects: a set of triples, <row, column, value>, where row 
and column are integers and form a unique combination, and 
value comes from the set item. 
Methods: 
for all a, b Î Sparse_Matrix, x  item, i, j, max_col, 
max_row  index 
Sparse_Marix Create(max_row, max_col) ::= 
return a Sparse_matrix that can hold up to 
max_items = max _row  max_col and 
whose maximum row size is max_row and 
whose maximum column size is max_col.
Sparse Matrix ADT (cont’d) 
Sparse_Matrix Transpose(a) ::= 
return the matrix produced by interchanging 
the row and column value of every triple. 
Sparse_Matrix Add(a, b) ::= 
if the dimensions of a and b are the same 
return the matrix produced by adding 
corresponding items, namely those with 
identical row and column values. 
else return error 
Sparse_Matrix Multiply(a, b) ::= 
if number of columns in a equals number of rows in b 
return the matrix d produced by multiplying 
a by b according to the formula: d [i] [j] = 
(a[i][k]•b[k][j]) where d (i, j) is the (i,j)th 
element 
else return error.
Sparse Matrix Representation 
(1) Represented by a two-dimensional array. 
Sparse matrix wastes space. 
(2) Each element is characterized by <row, col, value>. 
Sparse_matrix Create(max_row, max_col) ::= 
#define MAX_TERMS 101 /* maximum number of terms +1*/ 
typedef struct { 
int col; 
int row; 
int value; 
} term; 
term A[MAX_TERMS] 
The terms in A should be ordered 
based on <row, col>
Sparse Matrix Operations 
Transpose of a sparse matrix. 
What is the transpose of a matrix? 
row col value row col value 
a[0] 6 6 8 b[0] 6 6 8 
[1] 0 0 15 [1] 0 0 15 
[2] 0 3 22 transpose 
[2] 0 4 91 
[3] 0 5 -15 [3] 1 1 11 
[4] 1 1 11 [4] 2 1 3 
[5] 1 2 3 [5] 2 5 28 
[6] 2 3 -6 [6] 3 0 22 
[7] 4 0 91 [7] 3 2 -6 
[8] 5 2 28 [8] 5 0 -15
Transpose a Sparse Matrix 
(1) for each row i 
take element <i, j, value> and store it 
in element <j, i, value> of the transpose. 
difficulty: where to put <j, i, value>? 
(0, 0, 15) ====> (0, 0, 15) 
(0, 3, 22) ====> (3, 0, 22) 
(0, 5, -15) ====> (5, 0, -15) 
(1, 1, 11) ====> (1, 1, 11) 
Move elements down very often. 
(2) For all elements in column j, 
place element <i, j, value> in element <j, i, value>
Transpose of a Sparse Matrix 
(cont’d) 
void transpose (term a[], term b[]) 
/* b is set to the transpose of a */ 
{ 
int n, i, j, currentb; 
n = a[0].value; /* total number of elements */ 
b[0].row = a[0].col; /* rows in b = columns in a */ 
b[0].col = a[0].row; /*columns in b = rows in a */ 
b[0].value = n; 
if (n > 0) { /*non zero matrix */ 
currentb = 1; 
for (i = 0; i < a[0].col; i++) 
/* transpose by columns in a */ 
for( j = 1; j <= n; j++) 
/* find elements from the current column */ 
if (a[j].col == i) { 
/* element is in current column, add it to b */

More Related Content

What's hot

Java: Introduction to Arrays
Java: Introduction to ArraysJava: Introduction to Arrays
Java: Introduction to Arrays
Tareq Hasan
 
Two dimensional arrays
Two dimensional arraysTwo dimensional arrays
Two dimensional arrays
Neeru Mittal
 
Array lecture
Array lectureArray lecture
Array lecture
Joan Saño
 
Multidimensional array in C
Multidimensional array in CMultidimensional array in C
Multidimensional array in C
Smit Parikh
 
11 1. multi-dimensional array eng
11 1. multi-dimensional array eng11 1. multi-dimensional array eng
11 1. multi-dimensional array eng
웅식 전
 
Multi dimensional array
Multi dimensional arrayMulti dimensional array
Multi dimensional array
Rajendran
 
Arrays in java
Arrays in javaArrays in java
Arrays in java
bhavesh prakash
 
2D Array
2D Array 2D Array
2D Array
Ehatsham Riaz
 
Array
ArrayArray
Multi dimensional arrays
Multi dimensional arraysMulti dimensional arrays
Multi dimensional arrays
Aseelhalees
 
Array Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional arrayArray Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional array
imtiazalijoono
 
Two dimensional array
Two dimensional arrayTwo dimensional array
Two dimensional array
Rajendran
 
2- Dimensional Arrays
2- Dimensional Arrays2- Dimensional Arrays
2- Dimensional Arrays
Education Front
 
Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
Nishant Upadhyay
 
C Programming : Arrays
C Programming : ArraysC Programming : Arrays
C Programming : Arrays
Gagan Deep
 
18. Java associative arrays
18. Java associative arrays18. Java associative arrays
18. Java associative arrays
Intro C# Book
 
Lec4
Lec4Lec4
Chapter 3 ds
Chapter 3 dsChapter 3 ds
Chapter 3 ds
Hanif Durad
 
Array in Java
Array in JavaArray in Java
Array in Java
Shehrevar Davierwala
 
Arrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | EdurekaArrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | Edureka
Edureka!
 

What's hot (20)

Java: Introduction to Arrays
Java: Introduction to ArraysJava: Introduction to Arrays
Java: Introduction to Arrays
 
Two dimensional arrays
Two dimensional arraysTwo dimensional arrays
Two dimensional arrays
 
Array lecture
Array lectureArray lecture
Array lecture
 
Multidimensional array in C
Multidimensional array in CMultidimensional array in C
Multidimensional array in C
 
11 1. multi-dimensional array eng
11 1. multi-dimensional array eng11 1. multi-dimensional array eng
11 1. multi-dimensional array eng
 
Multi dimensional array
Multi dimensional arrayMulti dimensional array
Multi dimensional array
 
Arrays in java
Arrays in javaArrays in java
Arrays in java
 
2D Array
2D Array 2D Array
2D Array
 
Array
ArrayArray
Array
 
Multi dimensional arrays
Multi dimensional arraysMulti dimensional arrays
Multi dimensional arrays
 
Array Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional arrayArray Introduction One-dimensional array Multidimensional array
Array Introduction One-dimensional array Multidimensional array
 
Two dimensional array
Two dimensional arrayTwo dimensional array
Two dimensional array
 
2- Dimensional Arrays
2- Dimensional Arrays2- Dimensional Arrays
2- Dimensional Arrays
 
Numpy python cheat_sheet
Numpy python cheat_sheetNumpy python cheat_sheet
Numpy python cheat_sheet
 
C Programming : Arrays
C Programming : ArraysC Programming : Arrays
C Programming : Arrays
 
18. Java associative arrays
18. Java associative arrays18. Java associative arrays
18. Java associative arrays
 
Lec4
Lec4Lec4
Lec4
 
Chapter 3 ds
Chapter 3 dsChapter 3 ds
Chapter 3 ds
 
Array in Java
Array in JavaArray in Java
Array in Java
 
Arrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | EdurekaArrays In Python | Python Array Operations | Edureka
Arrays In Python | Python Array Operations | Edureka
 

Viewers also liked

Arrays
ArraysArrays
Arrays
Komal Singh
 
Sparse matrices
Sparse matricesSparse matrices
Sparse matrices
Jonghoon Park
 
What is sparse matrix
What is sparse matrixWhat is sparse matrix
What is sparse matrix
Saddam Hussain
 
Sparse matrices
Sparse matricesSparse matrices
Sparse matrices
Zain Zafar
 
Sparse Matrix and Polynomial
Sparse Matrix and PolynomialSparse Matrix and Polynomial
Sparse Matrix and Polynomial
Aroosa Rajput
 
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
widespreadpromotion
 
Computer instructions
Computer instructionsComputer instructions
Computer instructions
Anuj Modi
 

Viewers also liked (7)

Arrays
ArraysArrays
Arrays
 
Sparse matrices
Sparse matricesSparse matrices
Sparse matrices
 
What is sparse matrix
What is sparse matrixWhat is sparse matrix
What is sparse matrix
 
Sparse matrices
Sparse matricesSparse matrices
Sparse matrices
 
Sparse Matrix and Polynomial
Sparse Matrix and PolynomialSparse Matrix and Polynomial
Sparse Matrix and Polynomial
 
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
2. Linear Data Structure Using Arrays - Data Structures using C++ by Varsha P...
 
Computer instructions
Computer instructionsComputer instructions
Computer instructions
 

Similar to Array

Data structures KTU chapter2.PPT
Data structures KTU chapter2.PPTData structures KTU chapter2.PPT
Data structures KTU chapter2.PPT
Albin562191
 
1.Array and linklst definition
1.Array and linklst definition1.Array and linklst definition
1.Array and linklst definition
balavigneshwari
 
Arrays and structures
Arrays and structuresArrays and structures
Arrays and structures
Mohd Arif
 
Data Structure Midterm Lesson Arrays
Data Structure Midterm Lesson ArraysData Structure Midterm Lesson Arrays
Data Structure Midterm Lesson Arrays
Maulen Bale
 
Python programming : Arrays
Python programming : ArraysPython programming : Arrays
Python programming : Arrays
Emertxe Information Technologies Pvt Ltd
 
ARRAY OPERATIONS.pptx
ARRAY OPERATIONS.pptxARRAY OPERATIONS.pptx
ARRAY OPERATIONS.pptx
DarellMuchoko
 
sparse-matrix.ppt
sparse-matrix.pptsparse-matrix.ppt
sparse-matrix.ppt
ArunachalamSelva
 
Arrays
ArraysArrays
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
NehaJain919374
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Sunil Yadav
 
Scala by Luc Duponcheel
Scala by Luc DuponcheelScala by Luc Duponcheel
Scala by Luc Duponcheel
Stephan Janssen
 
Chapter 13.pptx
Chapter 13.pptxChapter 13.pptx
Chapter 13.pptx
AnisZahirahAzman
 
ARRAYS
ARRAYSARRAYS
ARRAYS
muniryaseen
 
Python Lecture 11
Python Lecture 11Python Lecture 11
Python Lecture 11
Inzamam Baig
 
An introduction to scala
An introduction to scalaAn introduction to scala
An introduction to scala
Mohsen Zainalpour
 
The java language cheat sheet
The java language cheat sheetThe java language cheat sheet
The java language cheat sheet
anand_study
 
R Cheat Sheet for Data Analysts and Statisticians.pdf
R Cheat Sheet for Data Analysts and Statisticians.pdfR Cheat Sheet for Data Analysts and Statisticians.pdf
R Cheat Sheet for Data Analysts and Statisticians.pdf
Timothy McBush Hiele
 
bobok
bobokbobok
19-Lec - Multidimensional Arrays.ppt
19-Lec - Multidimensional Arrays.ppt19-Lec - Multidimensional Arrays.ppt
19-Lec - Multidimensional Arrays.ppt
AqeelAbbas94
 
Introduction to python cheat sheet for all
Introduction to python cheat sheet for allIntroduction to python cheat sheet for all
Introduction to python cheat sheet for all
shwetakushwaha45
 

Similar to Array (20)

Data structures KTU chapter2.PPT
Data structures KTU chapter2.PPTData structures KTU chapter2.PPT
Data structures KTU chapter2.PPT
 
1.Array and linklst definition
1.Array and linklst definition1.Array and linklst definition
1.Array and linklst definition
 
Arrays and structures
Arrays and structuresArrays and structures
Arrays and structures
 
Data Structure Midterm Lesson Arrays
Data Structure Midterm Lesson ArraysData Structure Midterm Lesson Arrays
Data Structure Midterm Lesson Arrays
 
Python programming : Arrays
Python programming : ArraysPython programming : Arrays
Python programming : Arrays
 
ARRAY OPERATIONS.pptx
ARRAY OPERATIONS.pptxARRAY OPERATIONS.pptx
ARRAY OPERATIONS.pptx
 
sparse-matrix.ppt
sparse-matrix.pptsparse-matrix.ppt
sparse-matrix.ppt
 
Arrays
ArraysArrays
Arrays
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
 
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm ProblemsLeet Code May Coding Challenge - DataStructure and Algorithm Problems
Leet Code May Coding Challenge - DataStructure and Algorithm Problems
 
Scala by Luc Duponcheel
Scala by Luc DuponcheelScala by Luc Duponcheel
Scala by Luc Duponcheel
 
Chapter 13.pptx
Chapter 13.pptxChapter 13.pptx
Chapter 13.pptx
 
ARRAYS
ARRAYSARRAYS
ARRAYS
 
Python Lecture 11
Python Lecture 11Python Lecture 11
Python Lecture 11
 
An introduction to scala
An introduction to scalaAn introduction to scala
An introduction to scala
 
The java language cheat sheet
The java language cheat sheetThe java language cheat sheet
The java language cheat sheet
 
R Cheat Sheet for Data Analysts and Statisticians.pdf
R Cheat Sheet for Data Analysts and Statisticians.pdfR Cheat Sheet for Data Analysts and Statisticians.pdf
R Cheat Sheet for Data Analysts and Statisticians.pdf
 
bobok
bobokbobok
bobok
 
19-Lec - Multidimensional Arrays.ppt
19-Lec - Multidimensional Arrays.ppt19-Lec - Multidimensional Arrays.ppt
19-Lec - Multidimensional Arrays.ppt
 
Introduction to python cheat sheet for all
Introduction to python cheat sheet for allIntroduction to python cheat sheet for all
Introduction to python cheat sheet for all
 

Recently uploaded

The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
Israel Genealogy Research Association
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Excellence Foundation for South Sudan
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
History of Stoke Newington
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
Priyankaranawat4
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
Kavitha Krishnan
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
Priyankaranawat4
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
National Information Standards Organization (NISO)
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
RitikBhardwaj56
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
heathfieldcps1
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
AyyanKhan40
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
mulvey2
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
Dr. Mulla Adam Ali
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
thanhdowork
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
Celine George
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Dr. Vinod Kumar Kanvaria
 

Recently uploaded (20)

The Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collectionThe Diamonds of 2023-2024 in the IGRA collection
The Diamonds of 2023-2024 in the IGRA collection
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Your Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective UpskillingYour Skill Boost Masterclass: Strategies for Effective Upskilling
Your Skill Boost Masterclass: Strategies for Effective Upskilling
 
The History of Stoke Newington Street Names
The History of Stoke Newington Street NamesThe History of Stoke Newington Street Names
The History of Stoke Newington Street Names
 
clinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdfclinical examination of hip joint (1).pdf
clinical examination of hip joint (1).pdf
 
Assessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptxAssessment and Planning in Educational technology.pptx
Assessment and Planning in Educational technology.pptx
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdfANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
ANATOMY AND BIOMECHANICS OF HIP JOINT.pdf
 
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
Pollock and Snow "DEIA in the Scholarly Landscape, Session One: Setting Expec...
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...The simplified electron and muon model, Oscillating Spacetime: The Foundation...
The simplified electron and muon model, Oscillating Spacetime: The Foundation...
 
The basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptxThe basics of sentences session 5pptx.pptx
The basics of sentences session 5pptx.pptx
 
PIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf IslamabadPIMS Job Advertisement 2024.pdf Islamabad
PIMS Job Advertisement 2024.pdf Islamabad
 
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptxC1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
C1 Rubenstein AP HuG xxxxxxxxxxxxxx.pptx
 
Hindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdfHindi varnamala | hindi alphabet PPT.pdf
Hindi varnamala | hindi alphabet PPT.pdf
 
A Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptxA Survey of Techniques for Maximizing LLM Performance.pptx
A Survey of Techniques for Maximizing LLM Performance.pptx
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
How to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRMHow to Manage Your Lost Opportunities in Odoo 17 CRM
How to Manage Your Lost Opportunities in Odoo 17 CRM
 
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
Exploiting Artificial Intelligence for Empowering Researchers and Faculty, In...
 

Array

  • 2. Arrays Array: a set of pairs, having index and value data structure For each index, there is a value associated with that index. representation (possible) implemented by using consecutive memory.
  • 3. The Array ADT Objects: A set of pairs <index, value> where for each value of index there is a value from the set item. Index is a finite ordered set of one or more dimensions, for example, {0, … , n-1} for one dimension, {(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)} for two dimensions, etc. Methods: for all A Î Array, i Î index, x Î item, j, size Î integer Array Create(j, list) ::= return an array of j dimensions where list is a j-tuple whose kth element is the size of the kth dimension. Items are undefined. Item Retrieve(A, i) ::= if (i Î index) return the item associated with index value i in array A else return error Array Store(A, i, x) ::= if (i in index) return an array that is identical to array A except the new pair <i, x> has been inserted else return error
  • 4. The Array ADT Objects: A set of pairs <index, value> where for each value of index there is a value from the set item. Index is a finite ordered set of one or more dimensions, for example, {0, … , n-1} for one dimension, {(0,0),(0,1),(0,2),(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)} for two dimensions, etc. Methods: for all A Î Array, i Î index, x Î item, j, size Î integer Array Create(j, list) ::= return an array of j dimensions where list is a j-tuple whose kth element is the size of the kth dimension. Items are undefined. Item Retrieve(A, i) ::= if (i Î index) return the item associated with index value i in array A else return error Array Store(A, i, x) ::= if (i in index) return an array that is identical to array A except the new pair <i, x> has been inserted else return error
  • 5. Arrays in C int list[5], *plist[5]; list[5]: five integers list[0], list[1], list[2], list[3], list[4] *plist[5]: five pointers to integers plist[0], plist[1], plist[2], plist[3], plist[4] implementation of 1-D array list[0] base address = a list[1] a + sizeof(int) list[2] a + 2*sizeof(int) list[3] a + 3*sizeof(int) list[4] a + 4*size(int)
  • 6. Arrays in C (cont’d) Compare int *list1 and int list2[5] in C. Same: list1 and list2 are pointers. Difference: list2 reserves five locations. Notations: list2 - a pointer to list2[0] (list2 + i) - a pointer to list2[i] (&list2[i]) *(list2 + i) - list2[i]
  • 7. Address Contents 1228 0 1230 1 1232 2 1234 3 1236 4 Example Example: int one[] = {0, 1, 2, 3, 4}; //Goal: print out address and value void print1(int *ptr, int rows) { printf(“Address Contentsn”); for (i=0; i < rows; i++) printf(“%8u%5dn”, ptr+i, *(ptr+i)); printf(“n”); }
  • 8. Other Data Structures Based on Arrays •Arrays: Polynomials: defined by a list of coefficients and exponents - degree of polynomial = the largest exponent in a polynomial en •Basic data structure •May store any type of elements p(x) = a xe1 +... + a x n 1 Polynomials A(X)=3X20+2X5+4, B(X)=X4+10X3+3X2+1
  • 9. Polynomial ADT Objects: a set of ordered pairs of <ei,ai> where ai in Coefficients and ei in Exponents, ei are integers >= 0 Methods: for all poly, poly1, poly2  Polynomial, coef Coefficients, expon Exponents Polynomial Zero( ) ::= return the polynomial p(x) = 0 Boolean IsZero(poly) ::= if (poly) return FALSE else return TRUE Coefficient Coef(poly, expon) ::= if (expon  poly) return its coefficient else return Zero Exponent Lead_Exp(poly) ::= return the largest exponent in poly Polynomial Attach(poly,coef, expon) ::= if (expon  poly) return error else return the polynomial poly with the term <coef, expon> inserted
  • 10. Polyomial ADT (cont’d) Polynomial Remove(poly, expon) ::= if (expon  poly) return the polynomial poly with the term whose exponent is expon deleted else return error Polynomial SingleMult(poly, coef, expon)::= return the polynomial poly • coef • xexpon Polynomial Add(poly1, poly2) ::= return the polynomial poly1 +poly2 Polynomial Mult(poly1, poly2) ::= return the polynomial poly1 • poly2
  • 11. Polynomial Addition (1) #define MAX_DEGREE 101 typedef struct { int degree; float coef[MAX_DEGREE]; Running time? } polynomial; Addition(polynomial * a, polynomial * b, polynomial* c) { … } advantage: easy implementation disadvantage: waste space when sparse
  • 12. Polynomial Addition (2) Use one global array to store all polynomials A(X)=2X1000+1 B(X)=X4+10X3+3X2+1 2 1 1 10 3 1 1000 0 4 3 2 0 coef exp starta finisha startb finishb avail 0 1 2 3 4 5 6
  • 13. Polynomial Addition (2) (cont’d) #define MAX_DEGREE 101 typedef struct { int exp; float coef; Running time? } polynomial_term; polynomial_term terms[3*MAX_DEGREE]; Addition(int starta, int enda, int startb, int endb, int startc, int endc) { … } advantage: less space disadvantage: longer code
  • 14. col1 col2 col3 col4 col5 col6 15 0 0 22 0 15 ù ú ú ú ú ú ú ú ú û é ê ê ê ê ê ê ê ê 0 11 3 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 91 0 0 0 0 0 ë - - 0 0 28 0 0 0 row0 row1 row2 row3 row4 row5 5*3 6*6 15/15 8/36 sparse matrix data structure? Sparse Matrices
  • 15. Sparse Matrix ADT Objects: a set of triples, <row, column, value>, where row and column are integers and form a unique combination, and value comes from the set item. Methods: for all a, b Î Sparse_Matrix, x  item, i, j, max_col, max_row  index Sparse_Marix Create(max_row, max_col) ::= return a Sparse_matrix that can hold up to max_items = max _row  max_col and whose maximum row size is max_row and whose maximum column size is max_col.
  • 16. Sparse Matrix ADT (cont’d) Sparse_Matrix Transpose(a) ::= return the matrix produced by interchanging the row and column value of every triple. Sparse_Matrix Add(a, b) ::= if the dimensions of a and b are the same return the matrix produced by adding corresponding items, namely those with identical row and column values. else return error Sparse_Matrix Multiply(a, b) ::= if number of columns in a equals number of rows in b return the matrix d produced by multiplying a by b according to the formula: d [i] [j] = (a[i][k]•b[k][j]) where d (i, j) is the (i,j)th element else return error.
  • 17. Sparse Matrix Representation (1) Represented by a two-dimensional array. Sparse matrix wastes space. (2) Each element is characterized by <row, col, value>. Sparse_matrix Create(max_row, max_col) ::= #define MAX_TERMS 101 /* maximum number of terms +1*/ typedef struct { int col; int row; int value; } term; term A[MAX_TERMS] The terms in A should be ordered based on <row, col>
  • 18. Sparse Matrix Operations Transpose of a sparse matrix. What is the transpose of a matrix? row col value row col value a[0] 6 6 8 b[0] 6 6 8 [1] 0 0 15 [1] 0 0 15 [2] 0 3 22 transpose [2] 0 4 91 [3] 0 5 -15 [3] 1 1 11 [4] 1 1 11 [4] 2 1 3 [5] 1 2 3 [5] 2 5 28 [6] 2 3 -6 [6] 3 0 22 [7] 4 0 91 [7] 3 2 -6 [8] 5 2 28 [8] 5 0 -15
  • 19. Transpose a Sparse Matrix (1) for each row i take element <i, j, value> and store it in element <j, i, value> of the transpose. difficulty: where to put <j, i, value>? (0, 0, 15) ====> (0, 0, 15) (0, 3, 22) ====> (3, 0, 22) (0, 5, -15) ====> (5, 0, -15) (1, 1, 11) ====> (1, 1, 11) Move elements down very often. (2) For all elements in column j, place element <i, j, value> in element <j, i, value>
  • 20. Transpose of a Sparse Matrix (cont’d) void transpose (term a[], term b[]) /* b is set to the transpose of a */ { int n, i, j, currentb; n = a[0].value; /* total number of elements */ b[0].row = a[0].col; /* rows in b = columns in a */ b[0].col = a[0].row; /*columns in b = rows in a */ b[0].value = n; if (n > 0) { /*non zero matrix */ currentb = 1; for (i = 0; i < a[0].col; i++) /* transpose by columns in a */ for( j = 1; j <= n; j++) /* find elements from the current column */ if (a[j].col == i) { /* element is in current column, add it to b */