Ch 11 Arrays.ppt
Ch 11 Arrays.ppt
ARRAYS
1st element 2nd 3rd 4th element5th element 6th element7th element8th element 9th element10th
element element element
marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6] marks[7] marks[8] marks[9]
ELEMENTS for(i=0;i<10;i++)
marks[i] = -1;
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
99 67 78 56 88 90 34 85
Marks[0] marks[1] marks[2] marks[3] marks[4] marks[5] marks[6 marks[7]]
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] = %d\t”, i, arr[i]);
return 0;
} © Oxford University Press 2012. All rights reserved.
INSERTING AN ELEMENT IN THE ARRAY
Algorithm to insert a new element to the end of the array.
Calling INSERT (Data, 6, 3, 100) will lead to the following processing in the array
45 23 34 12 56 20 20 45 23 34 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]
Data[6] Data[6]
45 23 34 12 56 56 20 45 23 34 100 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]
Data[6] © Oxford University Press 2012. Data[6]
All rights reserved.
DELETING AN ELEMENT FROM THE ARRAY
20
45 23 34 12 56 20 23 12 56 56
45
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
20
Calling DELETE (Data, 6, 2) will lead to the following processing in the 23 12 56 20
45
array
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
20
23 12 12 56 23 12 56 20
45 45
Data[0] Data[1] Data[2] Data[3] Data[4] Data[5]
© Oxford University Press 2012. All rights reserved.
Data[0] Data[1] Data[2] Data[3] Data[4]
LINEAR SEARCH
BINARY SEARCH
First Dimension
A two dimensional array is declared as:
data_type array_name[row_size][column_size];
(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 © Oxford University
subscripts Presselement
of the array 2012. All rights reserved.
TWO DIMENSIONAL ARRAYS CONTD..
● A two dimensional array is initialized in the same was as a single dimensional array is initialized. For example,
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.
main()
Passing a row {
int arr[2][3]= ( {1, 2, 3}, {4, 5, 6} };
func(arr[1]);
}
#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(“\n\n”);
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]);
} University Press 2012. All rights reserved.
© Oxford
}
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
1 2 3 4 5
3 6 7 8
-1 9 1
9 3
© Oxford University Press 2012. All rights reserved.
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