SlideShare ist ein Scribd-Unternehmen logo
1 von 19
MODULE 10
ARRAYS
INTRODUCTION
• An array is a collection of similar data elements.
• These data elements have the same data type.
• The elements of the array are stored in consecutive memory locations and are referenced by an index
(also known as the subscript).
• Declaring an array means specifying three things:
The data type- what kind of values it can store ex, int, char, float
Name- to identify the array
The size- the maximum number of values that the array can hold
• Arrays are declared using the following syntax.
type name[size];
1st
element
2nd
element
3rd
element
4th
element
5th
element
6th
element
7th
element
8th
element
9th
element
10th
element
marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6] marks[7] marks[8] marks[9]
ACCESSING ELEMENTS OF THE ARRAY
To access all the elements of the array, you must use a loop. That is, we can access all the elements of
the array by varying the value of the subscript into the array. But note that the subscript must be an
integral value or an expression that evaluates to an integral value.
int i, marks[10];
for(i=0;i<10;i++)
marks[i] = -1;
CALCULATING THE ADDRESS OF ARRAY
ELEMENTS
Address of data element, A[k] = BA(A) + w( k – lower_bound)
Here, A is the array
k is the index of the element of which we have to calculate the address
BA is the base address of the array A.
w is the word size of one element in memory, for example, size of int is 2.
99 67 78 56 88 90 34 85
Marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6] marks[7]
marks[7] 1000 1002 1004 1006 1008 1010 1012 1014
Marks[4] = 1000 + 2(4 – 0)
= 1000 + 2(4) = 1008
STORING VALES IN ARRAYS
Store values in the array
Initialize the elements
Input values for the elements
Assign values to the elements
Initialization of Arrays
Arrays are initialized by writing,
type array_name[size]={list of values};
int marks[5]={90, 82, 78, 95, 88};
int i, marks[10];
for(i=0;i<10;i++)
scanf(“%d”, &marks[i]);
Assigning Values
int i, arr1[10], arr2[10];
for(i=0;i<10;i++)
arr2[i] = arr1[i];
Inputting Values
CALCULATING THE LENGTH OF THE ARRAY
Length = upper_bound – lower_bound + 1
Where, upper_bound is the index of the last element
and lower_bound is the index of the first element in the array
99 67 78 56 88 90 34 85
Marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6 marks[7]]
Here, lower_bound = 0, upper_bound = 7
Therefore, length = 7 – 0 + 1 = 8
WRITE A PROGRAM TO READ AND DISPLAY N NUMBERS USING AN ARRAY
#include<stdio.h>
#include<conio.h>
int main()
{
int i=0, n, arr[20];
clrscr();
printf(“n Enter the number of elements : “);
scanf(“%d”, &n);
for(i=0;i<n;i++)
{
printf(“n Arr[%d] = “, i);
scanf(“%d”,&num[i]);
}
printf(“n The array elements are “);
for(i=0;i<n;i++)
printf(“Arr[%d] = %dt”, i, arr[i]);
return 0;
}
INSERTING AN ELEMENT IN THE ARRAY
Algorithm to insert a new element to the end of the array.
Step 1: Set upper_bound = upper_bound + 1
Step 2: Set A[upper_bound] = VAL
Step 3; EXIT
The algorithm INSERT will be declared as INSERT( A, N, POS, VAL).
Step 1: [INITIALIZATION] SET I = N
Step 2: Repeat Steps 3 and 4 while I >= POS
Step 3: SET A[I + 1] = A[I]
Step 4: SET I = I – 1
[End of Loop]
Step 5: SET N = N + 1
Step 6: SET A[POS] = VAL
Step 7: EXIT
Calling INSERT (Data, 6, 3, 100) will lead to the following processing in the array
45 23 34 12 56 20 20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6]
45 23 34 12 56 56 20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6]
45 23 34 12 12 56 20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6]
45 23 34 100 12 56 20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6]
DELETING AN ELEMENT FROM THE ARRAY
Algorithm to delete an element from the end of the array
45 23 34 12 56 20
Step 1: Set upper_bound = upper_bound - 1
Step 2: EXIT
Step 1: [INITIALIZATION] SET I = POS
Step 2: Repeat Steps 3 and 4 while I <= N - 1
Step 3: SET A[I] = A[I + 1]
Step 4: SET I = I + 1
[End of Loop]
Step 5: SET N = N - 1
Step 6: EXIT
The algorithm DELETE will be declared as DELETE( A, N, POS).
Calling DELETE (Data, 6, 2) will lead to the following processing in the array
45
23 12 12 56
20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
45
23 12 56 56
20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
45
23 12 56 20
20
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
45
23 12 56 20
Data[0] Data[1] Data[2] Data[3] Data[4]
LINEAR SEARCH
LINEAR_SEARCH(A, N, VAL, POS)
Step 1: [INITIALIZE] SET POS = -1
Step 2: [INITIALIZE] SET I = 0
Step 3: Repeat Step 4 while I<N
Step 4: IF A[I] = VAL, then
SET POS = I
PRINT POS
Go to Step 6
[END OF IF]
[END OF LOOP]
Step 5: PRINT “Value Not Present In The Array”
Step 6: EXIT
BINARY SEARCH
BEG = lower_bound and END = upper_bound
MID = (BEG + END) / 2
If VAL < A[MID], then VAL will be present in the left segment of the array. So,
the value of END will be changed as, END = MID – 1
If VAL > A[MID], then VAL will be present in the right segment of the array. So,
the value of BEG will be changed as, BEG = MID + 1
BINARY_SEARCH(A, lower_bound, upper_bound, VAL, POS)
Step 1: [INITIALIZE] SET BEG = lower_bound, END = upper_bound, POS = -1
Step 2: Repeat Step 3 and Step 4 while BEG <= END
Step 3: SET MID = (BEG + END)/2
Step 4: IF A[MID] = VAL, then
POS = MID
PRINT POS
Go to Step 6
IF A[MID] > VAL then;
SET END = MID - 1
ELSE
SET BEG = MID + 1
[END OF IF]
[END OF LOOP]
Step 5: IF POS = -1, then
PRINTF “VAL IS NOT PRESENT IN THE ARRAY”
[END OF IF]
Step 6: EXIT
int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
and VAL = 9, the algorithm will proceed in the following manner.
BEG = 0, END = 10, MID = (0 + 10)/2 = 5
Now, VAL = 9 and A[MID] = A[5] = 5
A[5] is less than VAL, therefore, we will now search for the value in the later half of the array. So, we change the values of
BEG and MID.
Now, BEG = MID + 1 = 6, END = 10, MID = (6 + 10)/2 =16/2 = 8
Now, VAL = 9 and A[MID] = A[8] = 8
A[8] is less than VAL, therefore, we will now search for the value in the later half of the array. So, again we change the
values of BEG and MID.
Now, BEG = MID + 1 = 9, END = 10, MID = (9 + 10)/2 = 9
Now VAL = 9 and A[MID] = 9.
Now VAL = 9 and A[MID] = 9.
ONE DIMENSIONAL ARRAYS FOR INTER FUNCTION COMMUNICATION
main()
{
int arr[5] ={1, 2, 3, 4, 5};
func(arr);
}
moid func(int arr[5])
{
int i;
for(i=0;i<5;i++)
printf("%d", arr[i]);
1D Arrays For Inter Function Communication
Passing individual elements Passing entire array
Passing individual elements Passing entire array
Passing data values
main()
{
int arr[5] ={1, 2, 3, 4, 5};
func(arr[3]);
}
void func(int num)
{
printf("%d", num);
}
Passing addresses
main()
{
int arr[5] ={1, 2, 3, 4, 5};
func(&arr[3]);
}
void func(int *num)
{
printf("%d", num);
}
Passing the entire array
TWO DIMENSIONAL ARRAYS
• A two dimensional array is specified using two subscripts where one subscript denotes row and the
other denotes column.
• C looks a two dimensional array as an array of a one dimensional array.
Second Dimension
A two dimensional array is declared as:
data_type array_name[row_size][column_size];
Therefore, a two dimensional mXn array is an
array that contains m*n data elements and each
element is accessed using two subscripts, i and j
where i<=m and j<=n
int marks[3][5]
Rows/Columns
Col 0 Col 1 Col2 Col 3 Col 4
Row 0 Marks[0][0] Marks[0][1] Marks[0][2] Marks[0][3] Marks[0][4]
Row 1 Marks[1][0] Marks[1][1] Marks[1][2] Marks[1][3] Marks[1][4]
Row 2 Marks[2][0] Marks[2][1] Marks[2][2] Marks[2][3] Marks[2][4]
Two Dimensional Array
MEMORY REPRESENTATION OF A TWO DIMENSIONAL ARRAY
There are two ways of storing a 2-D array can be stored in memory. The first way is row major
order and the second is column major order.
In the row major order the elements of the first row are stored before the elements of the second
and third row. That is, the elements of the array are stored row by row where n elements of the
first row will occupy the first nth locations.
(0,0) (0, 1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3)
However, when we store the elements in a column major order, the elements of the first column
are stored before the elements of the second and third column. That is, the elements of the
array are stored column by column where n elements of the first column will occupy the first nth
locations.
(0,0) (1,0) (2,0) (3,0) (0,1) (1,1) (2,1 (3,1) (0,2) (1,2) (2,2) (3,2)
Address(A[I][J] = Base_Address + w{M ( J - 1) + (I - 1)}, if the array elements are stored in column
major order.
And, Address(A[I][J] = Base_Address + w{N ( I - 1) + (J - 1)}, if the array elements are stored in row
major order.
Where, w is the number of words stored per memory location
m, is the number of columns
n, is the number of rows
I and J are the subscripts of the array element
TWO DIMENSIONAL ARRAYS CONTD..
• A two dimensional array is initialized in the same was as a single dimensional array is initialized. For example,
int marks[2][3]={90, 87, 78, 68, 62, 71};
int marks[2][3]={{90,87,78},{68, 62, 71}};
Write a program to print the elements of a 2D array
• #include<stdio.h>
• #include<conio.h>
• main()
• {
• int arr[2][2] = {12, 34, 56,32};
• int i, j;
• for(i=0;i<2;i++)
• {
• printf("n");
• for(j=0;j<2;j++)
• printf("%dt", arr[i][j]);
• }
• return 0;
• }
TWO DIMENSIONAL ARRAYS FOR INTER FUNCTION COMMUNICATION
Passing individual elements Passing a row
2D Array for Inter Function Communication
Passing the entire 2D array
There are three ways of passing parts of the two dimensional array to a function. First, we can pass
individual elements of the array. This is exactly same as we passed element of a one dimensional
array.
Passing a row
main()
{
int arr[2][3]= ( {1, 2, 3}, {4, 5, 6} };
func(arr[1]);
}
void func(int arr[])
{
int i;
for(i=0;i<5;i++)
printf("%d", arr[i] * 10);
}
Passing the entire 2D array
To pass a two dimensional array to a function, we use the array name as the actual parameter.
(The same we did in case of a 1D array). However, the parameter in the called function must
indicate that the array has two dimensions.
PROGRAM ILLUSTRATING PASSING ENTIRE ARRAY TO A FUNCTION
• #include<stdio.h>
• void read_matrix(int mat[][], int, int);
• void sum_matrix(int mat1[][], int mat2[][], int, int);
• void display_matrix(int mat[5][5], int r, int c);
• int main()
• { int row, col, mat1[5][5], mat2[5][5];
• printf(“n Enter the number of rows and columns of the matrix : “);
• scanf(“%d %d”, row, col);
• read_matrix(mat1, row, col);
• printf(“n Enter the second matrix : “);
• read_matrix(mat2, row, col);
• sum_matrix(mat1, mat2, row, col);
• }
• void read_matrix(int mat[5][5], int r, int c)
• { int i, j;
• for(i=0;i<r;i++)
• { for(j=0;j<c;j++)
• { printf(“n mat[%d][%d] = “);
• scanf(“%d“, &mat[i][j]);
• }
• }
• }
• void sum_matrix(int mat1[5][5], mat2[5][5], int r, int c)
• { int i, j, sum[5][5];
• for(i=0;i<r;i++)
• { for(j=0;j<c;j++)
• sum[i][j] = mat1[i][j] + mat2[i][j];
• }
• display_matrix(sum, r, c);
• }
• void display_matrix(int mat[5][5], int r, int c)
• { int i, j;
• for(i=0;i<r;i++)
• { printf(“n”);
• for(j=0;j<c;j++)
• printf(“t mat[%d][%d] = %d“, mat[i][j]);
MULTI DIMENSIONAL ARRAYS
• A multi dimensional array is an array of arrays.
• Like we have one index in a single dimensional array, two indices in a two dimensional array, in the same
way we have n indices in a n-dimensional array or multi dimensional array.
• Conversely, an n dimensional array is specified using n indices.
• An n dimensional m1 x m2 x m3 x ….. mn array is a collection m1*m2*m3* ….. *mn elements.
• In a multi dimensional array, a particular element is specified by using n subscripts as A[I1][I2][I3]…[In],
where,
I1<=M1I2<=M2 I3 <= M3 ……… In <= Mn
PROGRAM TO READ AND DISPLAY A 2X2X2 ARRAY
#include<stdio.h>
int main()
{ int array1[3][3][3], i, j, k;
printf(“n Enter the elements of the matrix”);
printf(“n ******************************”);
for(i=0;i<2;i++)
{ for(j=0;j<2;j++)
{
for(k=0;k<2;k++)
{
printf(“n array[%d][ %d][ %d] = ”, i, j, k);
scanf(“%d”, &array1[i][j][k]);
}
}
}
printf(“n The matrix is : “);
printf(“n *********************************”)l
for(i=0;i<2;i++)
{ printf(“nn”);
for(j=0;j<2;j++)
{
printf(“n”);
for(k=0;k<2;k++)
printf(“t array[%d][ %d][ %d] = %d”, i, j, k, array1[i][j][k]);
}
}
SPARSE MATRIX
• Sparse matrix is a matrix that has many elements with a value zero.
• In order to efficiently utilize the memory, specialized algorithms and data structures that take
advantage of the sparse structure of the matrix should be used. Otherwise, execution will slow down
and the matrix will consume large amounts of memory.
• There are two types of sparse matrices. In the first type of sparse matrix, all elements above the
main diagonal have a value zero. This type of sparse matrix is also called a (lower) triagonal matrix. In
a lower triangular matrix, Ai,j = 0 where i<j.
• An nXn lower triangular matrix A has one non zero element in the first row, two non zero element in
the second row and likewise, n non zero elements in the nth row.
1
5 3
2 7 -1
3 1 4 2
-9 2 -8 1 7
• In an upper triangular matrix Ai,j = 0 where i>j.
•An nXn upper triangular matrix A has n non zero element in the first row, n-1 non zero element in
the second row and likewise, 1 non zero elements in the nth row.
1 2 3 4 5
3 6 7 8
-1 9 1
9 3
7
SPARSE MATRIX CONTD.
• In the second variant of a sparse matrix, elements with a non-zero value can appear only on the diagonal
or immediately above or below the diagonal. This type of matrix is also called a tridiagonal matrix.
• In a tridiagonal matrix, Ai,j = 0 where | i – j| > 1. Therefore, if elements are present on
• the main diagonal the, it contains non-zero elements for i=j. In all there will be n elements
• diagonal below the main diagonal, it contains non zero elements for i=j+1. In all there will be n-1
elements
• diagonal above the main diagonal, it contains non zero elements for i=j-1. In all there will be n-1
elements
4 1
5 1 2
9 3 1
4 2 2
5 1 9
6 7

Weitere ähnliche Inhalte

Ă„hnlich wie Chapter 10.ppt

Array in C full basic explanation
Array in C full basic explanationArray in C full basic explanation
Array in C full basic explanationTeresaJencyBala
 
ARRAY in python and c with examples .pptx
ARRAY  in python and c with examples .pptxARRAY  in python and c with examples .pptx
ARRAY in python and c with examples .pptxabhishekmaurya102515
 
Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional Appili Vamsi Krishna
 
array-191103180006.pdf
array-191103180006.pdfarray-191103180006.pdf
array-191103180006.pdfHEMAHEMS5
 
Data structure array
Data structure  arrayData structure  array
Data structure arrayMajidHamidAli
 
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 arrayimtiazalijoono
 
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptxINDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptxAbhimanyuChaure
 
DS Unit 1.pptx
DS Unit 1.pptxDS Unit 1.pptx
DS Unit 1.pptxchin463670
 
2- Dimensional Arrays
2- Dimensional Arrays2- Dimensional Arrays
2- Dimensional ArraysEducation Front
 
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptxC (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptxrohinitalekar1
 

Ă„hnlich wie Chapter 10.ppt (20)

Array in C full basic explanation
Array in C full basic explanationArray in C full basic explanation
Array in C full basic explanation
 
Arrays
ArraysArrays
Arrays
 
Arrays
ArraysArrays
Arrays
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
Arrays
ArraysArrays
Arrays
 
Introduction to Arrays in C
Introduction to Arrays in CIntroduction to Arrays in C
Introduction to Arrays in C
 
ARRAY in python and c with examples .pptx
ARRAY  in python and c with examples .pptxARRAY  in python and c with examples .pptx
ARRAY in python and c with examples .pptx
 
Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional Arrays 1D and 2D , and multi dimensional
Arrays 1D and 2D , and multi dimensional
 
array-191103180006.pdf
array-191103180006.pdfarray-191103180006.pdf
array-191103180006.pdf
 
Lecture 15 - Array
Lecture 15 - ArrayLecture 15 - Array
Lecture 15 - Array
 
Arrays in CPP
Arrays in CPPArrays in CPP
Arrays in CPP
 
Data structure array
Data structure  arrayData structure  array
Data structure array
 
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
 
Chap 6 c++
Chap 6 c++Chap 6 c++
Chap 6 c++
 
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptxINDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
INDIAN INSTITUTE OF TECHNOLOGY KANPUR ESC 111M Lec12.pptx
 
unit-2-dsa.pptx
unit-2-dsa.pptxunit-2-dsa.pptx
unit-2-dsa.pptx
 
DS Unit 1.pptx
DS Unit 1.pptxDS Unit 1.pptx
DS Unit 1.pptx
 
About Array
About ArrayAbout Array
About Array
 
2- Dimensional Arrays
2- Dimensional Arrays2- Dimensional Arrays
2- Dimensional Arrays
 
C (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptxC (PPS)Programming for problem solving.pptx
C (PPS)Programming for problem solving.pptx
 

KĂĽrzlich hochgeladen

Cheap Rate Call girls Kalkaji 9205541914 shot 1500 night
Cheap Rate Call girls Kalkaji 9205541914 shot 1500 nightCheap Rate Call girls Kalkaji 9205541914 shot 1500 night
Cheap Rate Call girls Kalkaji 9205541914 shot 1500 nightDelhi Call girls
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...BarusRa
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdftbatkhuu1
 
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...Suhani Kapoor
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxmirandajeremy200221
 
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...Suhani Kapoor
 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...home
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceanilsa9823
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Yantram Animation Studio Corporation
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentationamedia6
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️soniya singh
 
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre GurgaonCheap Rate ➥8448380779 ▻Call Girls In Huda City Centre Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre GurgaonDelhi Call girls
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfAmirYakdi
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...babafaisel
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130Suhani Kapoor
 

KĂĽrzlich hochgeladen (20)

young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Serviceyoung call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
young call girls in Vivek Vihar🔝 9953056974 🔝 Delhi escort Service
 
Cheap Rate Call girls Kalkaji 9205541914 shot 1500 night
Cheap Rate Call girls Kalkaji 9205541914 shot 1500 nightCheap Rate Call girls Kalkaji 9205541914 shot 1500 night
Cheap Rate Call girls Kalkaji 9205541914 shot 1500 night
 
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...AMBER GRAIN EMBROIDERY | Growing folklore elements |  Root-based materials, w...
AMBER GRAIN EMBROIDERY | Growing folklore elements | Root-based materials, w...
 
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance  VVIP 🍎 SER...
Call Girls Service Mukherjee Nagar @9999965857 Delhi 🫦 No Advance VVIP 🍎 SER...
 
Editorial design Magazine design project.pdf
Editorial design Magazine design project.pdfEditorial design Magazine design project.pdf
Editorial design Magazine design project.pdf
 
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
VIP College Call Girls Gorakhpur Bhavna 8250192130 Independent Escort Service...
 
DragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptxDragonBall PowerPoint Template for demo.pptx
DragonBall PowerPoint Template for demo.pptx
 
escort service sasti (*~Call Girls in Prasad Nagar Metro❤️9953056974
escort service sasti (*~Call Girls in Prasad Nagar Metro❤️9953056974escort service sasti (*~Call Girls in Prasad Nagar Metro❤️9953056974
escort service sasti (*~Call Girls in Prasad Nagar Metro❤️9953056974
 
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
VIP Russian Call Girls in Saharanpur Deepika 8250192130 Independent Escort Se...
 
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
Recommendable # 971589162217 # philippine Young Call Girls in Dubai By Marina...
 
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
Best VIP Call Girls Noida Sector 44 Call Me: 8448380779
 
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Aminabad Lucknow best Night Fun service
 
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
Captivating Charm: Exploring Marseille's Hillside Villas with Our 3D Architec...
 
B. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdfB. Smith. (Architectural Portfolio.).pdf
B. Smith. (Architectural Portfolio.).pdf
 
The history of music videos a level presentation
The history of music videos a level presentationThe history of music videos a level presentation
The history of music videos a level presentation
 
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
Call Girls in Kalkaji Delhi 8264348440 call girls ❤️
 
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre GurgaonCheap Rate ➥8448380779 ▻Call Girls In Huda City Centre Gurgaon
Cheap Rate ➥8448380779 ▻Call Girls In Huda City Centre Gurgaon
 
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdfThe_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
The_Canvas_of_Creative_Mastery_Newsletter_April_2024_Version.pdf
 
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
Kala jadu for love marriage | Real amil baba | Famous amil baba | kala jadu n...
 
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
VIP Call Girls Service Mehdipatnam Hyderabad Call +91-8250192130
 

Chapter 10.ppt

  • 2. INTRODUCTION • An array is a collection of similar data elements. • These data elements have the same data type. • The elements of the array are stored in consecutive memory locations and are referenced by an index (also known as the subscript). • Declaring an array means specifying three things: The data type- what kind of values it can store ex, int, char, float Name- to identify the array The size- the maximum number of values that the array can hold • Arrays are declared using the following syntax. type name[size]; 1st element 2nd element 3rd element 4th element 5th element 6th element 7th element 8th element 9th element 10th element marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6] marks[7] marks[8] marks[9]
  • 3. ACCESSING ELEMENTS OF THE ARRAY To access all the elements of the array, you must use a loop. That is, we can access all the elements of the array by varying the value of the subscript into the array. But note that the subscript must be an integral value or an expression that evaluates to an integral value. int i, marks[10]; for(i=0;i<10;i++) marks[i] = -1; CALCULATING THE ADDRESS OF ARRAY ELEMENTS Address of data element, A[k] = BA(A) + w( k – lower_bound) Here, A is the array k is the index of the element of which we have to calculate the address BA is the base address of the array A. w is the word size of one element in memory, for example, size of int is 2. 99 67 78 56 88 90 34 85 Marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6] marks[7] marks[7] 1000 1002 1004 1006 1008 1010 1012 1014 Marks[4] = 1000 + 2(4 – 0) = 1000 + 2(4) = 1008
  • 4. STORING VALES IN ARRAYS Store values in the array Initialize the elements Input values for the elements Assign values to the elements Initialization of Arrays Arrays are initialized by writing, type array_name[size]={list of values}; int marks[5]={90, 82, 78, 95, 88}; int i, marks[10]; for(i=0;i<10;i++) scanf(“%d”, &marks[i]); Assigning Values int i, arr1[10], arr2[10]; for(i=0;i<10;i++) arr2[i] = arr1[i]; Inputting Values CALCULATING THE LENGTH OF THE ARRAY Length = upper_bound – lower_bound + 1 Where, upper_bound is the index of the last element and lower_bound is the index of the first element in the array 99 67 78 56 88 90 34 85 Marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6 marks[7]] Here, lower_bound = 0, upper_bound = 7 Therefore, length = 7 – 0 + 1 = 8
  • 5. WRITE A PROGRAM TO READ AND DISPLAY N NUMBERS USING AN ARRAY #include<stdio.h> #include<conio.h> int main() { int i=0, n, arr[20]; clrscr(); printf(“n Enter the number of elements : “); scanf(“%d”, &n); for(i=0;i<n;i++) { printf(“n Arr[%d] = “, i); scanf(“%d”,&num[i]); } printf(“n The array elements are “); for(i=0;i<n;i++) printf(“Arr[%d] = %dt”, i, arr[i]); return 0; }
  • 6. INSERTING AN ELEMENT IN THE ARRAY Algorithm to insert a new element to the end of the array. Step 1: Set upper_bound = upper_bound + 1 Step 2: Set A[upper_bound] = VAL Step 3; EXIT The algorithm INSERT will be declared as INSERT( A, N, POS, VAL). Step 1: [INITIALIZATION] SET I = N Step 2: Repeat Steps 3 and 4 while I >= POS Step 3: SET A[I + 1] = A[I] Step 4: SET I = I – 1 [End of Loop] Step 5: SET N = N + 1 Step 6: SET A[POS] = VAL Step 7: EXIT Calling INSERT (Data, 6, 3, 100) will lead to the following processing in the array 45 23 34 12 56 20 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] 45 23 34 12 56 56 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] 45 23 34 12 12 56 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6] 45 23 34 100 12 56 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[6]
  • 7. DELETING AN ELEMENT FROM THE ARRAY Algorithm to delete an element from the end of the array 45 23 34 12 56 20 Step 1: Set upper_bound = upper_bound - 1 Step 2: EXIT Step 1: [INITIALIZATION] SET I = POS Step 2: Repeat Steps 3 and 4 while I <= N - 1 Step 3: SET A[I] = A[I + 1] Step 4: SET I = I + 1 [End of Loop] Step 5: SET N = N - 1 Step 6: EXIT The algorithm DELETE will be declared as DELETE( A, N, POS). Calling DELETE (Data, 6, 2) will lead to the following processing in the array 45 23 12 12 56 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] 45 23 12 56 56 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] 45 23 12 56 20 20 Data[0] Data[1] Data[2] Data[3] Data[4] Data[5] 45 23 12 56 20 Data[0] Data[1] Data[2] Data[3] Data[4]
  • 8. LINEAR SEARCH LINEAR_SEARCH(A, N, VAL, POS) Step 1: [INITIALIZE] SET POS = -1 Step 2: [INITIALIZE] SET I = 0 Step 3: Repeat Step 4 while I<N Step 4: IF A[I] = VAL, then SET POS = I PRINT POS Go to Step 6 [END OF IF] [END OF LOOP] Step 5: PRINT “Value Not Present In The Array” Step 6: EXIT BINARY SEARCH BEG = lower_bound and END = upper_bound MID = (BEG + END) / 2 If VAL < A[MID], then VAL will be present in the left segment of the array. So, the value of END will be changed as, END = MID – 1 If VAL > A[MID], then VAL will be present in the right segment of the array. So, the value of BEG will be changed as, BEG = MID + 1
  • 9. BINARY_SEARCH(A, lower_bound, upper_bound, VAL, POS) Step 1: [INITIALIZE] SET BEG = lower_bound, END = upper_bound, POS = -1 Step 2: Repeat Step 3 and Step 4 while BEG <= END Step 3: SET MID = (BEG + END)/2 Step 4: IF A[MID] = VAL, then POS = MID PRINT POS Go to Step 6 IF A[MID] > VAL then; SET END = MID - 1 ELSE SET BEG = MID + 1 [END OF IF] [END OF LOOP] Step 5: IF POS = -1, then PRINTF “VAL IS NOT PRESENT IN THE ARRAY” [END OF IF] Step 6: EXIT int A[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; and VAL = 9, the algorithm will proceed in the following manner. BEG = 0, END = 10, MID = (0 + 10)/2 = 5 Now, VAL = 9 and A[MID] = A[5] = 5 A[5] is less than VAL, therefore, we will now search for the value in the later half of the array. So, we change the values of BEG and MID. Now, BEG = MID + 1 = 6, END = 10, MID = (6 + 10)/2 =16/2 = 8 Now, VAL = 9 and A[MID] = A[8] = 8 A[8] is less than VAL, therefore, we will now search for the value in the later half of the array. So, again we change the values of BEG and MID. Now, BEG = MID + 1 = 9, END = 10, MID = (9 + 10)/2 = 9 Now VAL = 9 and A[MID] = 9. Now VAL = 9 and A[MID] = 9.
  • 10. ONE DIMENSIONAL ARRAYS FOR INTER FUNCTION COMMUNICATION main() { int arr[5] ={1, 2, 3, 4, 5}; func(arr); } moid func(int arr[5]) { int i; for(i=0;i<5;i++) printf("%d", arr[i]); 1D Arrays For Inter Function Communication Passing individual elements Passing entire array Passing individual elements Passing entire array Passing data values main() { int arr[5] ={1, 2, 3, 4, 5}; func(arr[3]); } void func(int num) { printf("%d", num); } Passing addresses main() { int arr[5] ={1, 2, 3, 4, 5}; func(&arr[3]); } void func(int *num) { printf("%d", num); } Passing the entire array
  • 11. TWO DIMENSIONAL ARRAYS • A two dimensional array is specified using two subscripts where one subscript denotes row and the other denotes column. • C looks a two dimensional array as an array of a one dimensional array. Second Dimension A two dimensional array is declared as: data_type array_name[row_size][column_size]; Therefore, a two dimensional mXn array is an array that contains m*n data elements and each element is accessed using two subscripts, i and j where i<=m and j<=n int marks[3][5] Rows/Columns Col 0 Col 1 Col2 Col 3 Col 4 Row 0 Marks[0][0] Marks[0][1] Marks[0][2] Marks[0][3] Marks[0][4] Row 1 Marks[1][0] Marks[1][1] Marks[1][2] Marks[1][3] Marks[1][4] Row 2 Marks[2][0] Marks[2][1] Marks[2][2] Marks[2][3] Marks[2][4] Two Dimensional Array
  • 12. MEMORY REPRESENTATION OF A TWO DIMENSIONAL ARRAY There are two ways of storing a 2-D array can be stored in memory. The first way is row major order and the second is column major order. In the row major order the elements of the first row are stored before the elements of the second and third row. That is, the elements of the array are stored row by row where n elements of the first row will occupy the first nth locations. (0,0) (0, 1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) However, when we store the elements in a column major order, the elements of the first column are stored before the elements of the second and third column. That is, the elements of the array are stored column by column where n elements of the first column will occupy the first nth locations. (0,0) (1,0) (2,0) (3,0) (0,1) (1,1) (2,1 (3,1) (0,2) (1,2) (2,2) (3,2) Address(A[I][J] = Base_Address + w{M ( J - 1) + (I - 1)}, if the array elements are stored in column major order. And, Address(A[I][J] = Base_Address + w{N ( I - 1) + (J - 1)}, if the array elements are stored in row major order. Where, w is the number of words stored per memory location m, is the number of columns n, is the number of rows I and J are the subscripts of the array element
  • 13. TWO DIMENSIONAL ARRAYS CONTD.. • A two dimensional array is initialized in the same was as a single dimensional array is initialized. For example, int marks[2][3]={90, 87, 78, 68, 62, 71}; int marks[2][3]={{90,87,78},{68, 62, 71}}; Write a program to print the elements of a 2D array • #include<stdio.h> • #include<conio.h> • main() • { • int arr[2][2] = {12, 34, 56,32}; • int i, j; • for(i=0;i<2;i++) • { • printf("n"); • for(j=0;j<2;j++) • printf("%dt", arr[i][j]); • } • return 0; • }
  • 14. TWO DIMENSIONAL ARRAYS FOR INTER FUNCTION COMMUNICATION Passing individual elements Passing a row 2D Array for Inter Function Communication Passing the entire 2D array There are three ways of passing parts of the two dimensional array to a function. First, we can pass individual elements of the array. This is exactly same as we passed element of a one dimensional array. Passing a row main() { int arr[2][3]= ( {1, 2, 3}, {4, 5, 6} }; func(arr[1]); } void func(int arr[]) { int i; for(i=0;i<5;i++) printf("%d", arr[i] * 10); } Passing the entire 2D array To pass a two dimensional array to a function, we use the array name as the actual parameter. (The same we did in case of a 1D array). However, the parameter in the called function must indicate that the array has two dimensions.
  • 15. PROGRAM ILLUSTRATING PASSING ENTIRE ARRAY TO A FUNCTION • #include<stdio.h> • void read_matrix(int mat[][], int, int); • void sum_matrix(int mat1[][], int mat2[][], int, int); • void display_matrix(int mat[5][5], int r, int c); • int main() • { int row, col, mat1[5][5], mat2[5][5]; • printf(“n Enter the number of rows and columns of the matrix : “); • scanf(“%d %d”, row, col); • read_matrix(mat1, row, col); • printf(“n Enter the second matrix : “); • read_matrix(mat2, row, col); • sum_matrix(mat1, mat2, row, col); • } • void read_matrix(int mat[5][5], int r, int c) • { int i, j; • for(i=0;i<r;i++) • { for(j=0;j<c;j++) • { printf(“n mat[%d][%d] = “); • scanf(“%d“, &mat[i][j]); • } • } • } • void sum_matrix(int mat1[5][5], mat2[5][5], int r, int c) • { int i, j, sum[5][5]; • for(i=0;i<r;i++) • { for(j=0;j<c;j++) • sum[i][j] = mat1[i][j] + mat2[i][j]; • } • display_matrix(sum, r, c); • } • void display_matrix(int mat[5][5], int r, int c) • { int i, j; • for(i=0;i<r;i++) • { printf(“n”); • for(j=0;j<c;j++) • printf(“t mat[%d][%d] = %d“, mat[i][j]);
  • 16. MULTI DIMENSIONAL ARRAYS • A multi dimensional array is an array of arrays. • Like we have one index in a single dimensional array, two indices in a two dimensional array, in the same way we have n indices in a n-dimensional array or multi dimensional array. • Conversely, an n dimensional array is specified using n indices. • An n dimensional m1 x m2 x m3 x ….. mn array is a collection m1*m2*m3* ….. *mn elements. • In a multi dimensional array, a particular element is specified by using n subscripts as A[I1][I2][I3]…[In], where, I1<=M1I2<=M2 I3 <= M3 ……… In <= Mn
  • 17. PROGRAM TO READ AND DISPLAY A 2X2X2 ARRAY #include<stdio.h> int main() { int array1[3][3][3], i, j, k; printf(“n Enter the elements of the matrix”); printf(“n ******************************”); for(i=0;i<2;i++) { for(j=0;j<2;j++) { for(k=0;k<2;k++) { printf(“n array[%d][ %d][ %d] = ”, i, j, k); scanf(“%d”, &array1[i][j][k]); } } } printf(“n The matrix is : “); printf(“n *********************************”)l for(i=0;i<2;i++) { printf(“nn”); for(j=0;j<2;j++) { printf(“n”); for(k=0;k<2;k++) printf(“t array[%d][ %d][ %d] = %d”, i, j, k, array1[i][j][k]); } }
  • 18. SPARSE MATRIX • Sparse matrix is a matrix that has many elements with a value zero. • In order to efficiently utilize the memory, specialized algorithms and data structures that take advantage of the sparse structure of the matrix should be used. Otherwise, execution will slow down and the matrix will consume large amounts of memory. • There are two types of sparse matrices. In the first type of sparse matrix, all elements above the main diagonal have a value zero. This type of sparse matrix is also called a (lower) triagonal matrix. In a lower triangular matrix, Ai,j = 0 where i<j. • An nXn lower triangular matrix A has one non zero element in the first row, two non zero element in the second row and likewise, n non zero elements in the nth row. 1 5 3 2 7 -1 3 1 4 2 -9 2 -8 1 7 • In an upper triangular matrix Ai,j = 0 where i>j. •An nXn upper triangular matrix A has n non zero element in the first row, n-1 non zero element in the second row and likewise, 1 non zero elements in the nth row. 1 2 3 4 5 3 6 7 8 -1 9 1 9 3 7
  • 19. SPARSE MATRIX CONTD. • In the second variant of a sparse matrix, elements with a non-zero value can appear only on the diagonal or immediately above or below the diagonal. This type of matrix is also called a tridiagonal matrix. • In a tridiagonal matrix, Ai,j = 0 where | i – j| > 1. Therefore, if elements are present on • the main diagonal the, it contains non-zero elements for i=j. In all there will be n elements • diagonal below the main diagonal, it contains non zero elements for i=j+1. In all there will be n-1 elements • diagonal above the main diagonal, it contains non zero elements for i=j-1. In all there will be n-1 elements 4 1 5 1 2 9 3 1 4 2 2 5 1 9 6 7