0% found this document useful (0 votes)
5 views

Arrays

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Arrays

Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22

CHAPTER#2

ARRAYS
Array
An Array is a structured collection of components,
of same type, that is given a single name.
• Each component (array element) is accessed by an index.
• Each element has unique index or position.
• Array name [element_index]
• Array Elements The items in an array are called array elements.
• int num[3]={1,2,3}
.
• The index of first element is called Lower bound and last is upper bound.
• Index of array starts from 0(Lower bound).
Maximum Number of elements in array:
upperBound-LowerBound+1;
num[3]=2-0+1=3
We can define the indexing of an array in the below ways -
0 (zero-based indexing): The first element of the array will be arr[0].
1 (one-based indexing): The first element of the array will be arr[1].
n (n - based indexing): The first element of the array can reside at any random index number.
NEED OF ARRAY
ARRAYS ARE USEFUL BECAUSE -

• SORTING AND SEARCHING A VALUE IN AN ARRAY IS EASIER.


• ARRAYS ARE BEST TO PROCESS MULTIPLE VALUES QUICKLY AND EASILY.
• ARRAYS ARE GOOD FOR STORING MULTIPLE VALUES IN A SINGLE VARIABLE - IN
COMPUTER PROGRAMMING, MOST CASES REQUIRE STORING A LARGE NUMBER OF
DATA OF A SIMILAR TYPE. TO STORE SUCH AN AMOUNT OF DATA, WE NEED TO
DEFINE A LARGE NUMBER OF VARIABLES. IT WOULD BE VERY DIFFICULT TO
REMEMBER THE NAMES OF ALL THE VARIABLES WHILE WRITING THE PROGRAMS.
INSTEAD OF NAMING ALL THE VARIABLES WITH A DIFFERENT NAME, IT IS BETTER
TO DEFINE AN ARRAY AND STORE ALL THE ELEMENTS INTO IT.
REPRESENTATION OF ARRAY IN MEMORY
• EACH BOX REPRESENTS THE AMOUNT OF MEMORY NEEDED TO HOLD ONE ARRAY
ELEMENT.
• FOR INT THIS IS USUALLY 4 BYTES.
• WE CAN WRITE THE VALUE OF AN ELEMENT INSIDE THE BOX.
• STARTING ADDRESS OF ARRAY IS CALLED BASE ADDRESS.
• WE CAN FIND ANY ELEMENT’S ADDRESS THROUGH BASE ADDRESS
ACCESS AN ELEMENT FROM THE
ARRAY
We required the information given below to access any random element from the array -

BASE ADDRESS OF THE ARRAY.


SIZE OF AN ELEMENT IN BYTES.
TYPE OF INDEXING, ARRAY FOLLOWS.
THE FORMULA TO CALCULATE THE ADDRESS TO ACCESS AN ARRAY ELEMENT -

BYTE ADDRESS OF ELEMENT A[I] = BASE ADDRESS + SIZE * ( I - FIRST INDEX)


ACCESS AN ELEMENT FROM THE ARRAY
BASIC OPERATIONS IN ARRAYS
• TRAVERSE − PRINT ALL THE ARRAY ELEMENTS ONE BY ONE.
• INSERTION − ADDS AN ELEMENT AT THE GIVEN INDEX.
• DELETION − DELETES AN ELEMENT AT THE GIVEN INDEX.
• SEARCH − SEARCHES AN ELEMENT USING THE GIVEN INDEX OR BY THE VALUE.
• UPDATE − UPDATES AN ELEMENT AT THE GIVEN INDEX.
• SORTING – SORTING THE ELEMENTS IN ASCENDING OR DESCENDING ORDER
TRAVERSING AN ARRAY
1. START
2. INITIALIZE COUNTER VARIABLE(INT I) AND I=LOWERBOUND.
3. REPEAT I=LB TO UPPER BOUND BY INCREMENTING I.
4. APPLY PROCESS TO ARRAY[I]
5. END LOOP
6. STOP
EXAMPLE OF TRAVERSE
// writing a program in C++ to perform traverse operation on an array
//lower bound is 0 and upper bound is 4
#include <iostream>
using namespace std;
int main()
{
int i, size=5;
int arr[5]={53, 99, -11, 5, 102}; //declaring and initializing array
cout << "The array elements are: ";
for(i=0 ; i<size ; i++)
cout << "\n" << "arr[" << i << "]= " << arr[i];
return 0;
}
EVEN VALUES ARRAY TRAVERSAL
INT ARR[10], I;
COUT<<"ENTER ANY 10 NUMBERS: ";
FOR(I=0; I<10; I++)
CIN>>ARR[I];
COUT<<"\NEVEN NUMBERS ARE:\N";
FOR(I=0; I<10; I++)
{
IF(ARR[I]%2==0)
COUT<<ARR[I]<<" ";
}
ACTIVITY#1
• CALCULATE SUM OF ELEMENTS OF ARRAY OF SIZE 5?
1. INSERTION AT SPECIFIC POSITION
(ALGORITHM)
1. START
2. J=N-1 (SUCH THAT K<N & K IS INDEX WHERE ELEMENT WILL INSERT)
3. N=N+1
4. REPEAT 5& 6 WHILE J>=K
5. LA[J+1] = LA[J]
6. J=J-1
7. LA[K]=ITEM
8. PRINT LA WITH LOOP
9. END
#include <iostream>
Insertion at specific Position (C++ Code)
using namespace std;
main() {
int LA[] = {1,3,5,7,8};
int item = 10, k = 3, n = 5;
int i = 0, j = n-1;

printf("The original array elements are :\n");

for(i = 0; i<n; i++) {


cout<< i <<"="<<LA[i]<<endl;
}

n = n + 1;

while( j >= k) {
LA[j+1] = LA[j];
j = j - 1;
}

LA[k] = item;

printf("The array elements after insertion :\n");

for(i = 0; i<n; i++) {


cout<< i <<"="<<LA[i]<<endl;
}
}
2. DELETION ALGORITHM OF ELEMENT FROM ARRAY OF SPECIFIC
LOCATION

Consider LA is a linear array with N elements and K is a positive integer such


that K<=N. Following is the algorithm to delete an element available at the
Kth position of LA.

1. Start
2. Set J = K
3. Repeat steps 4 and 5 while J < N
4. Set LA[J] = LA[J + 1]
5. Set J = J+1
6. Set N = N-1
7. Stop
DELETION OF ELEMENT FROM ARRAY OF SPECIFIC LOCATION (C+
#include <iostream>
+ PROGRAM )
using namespace std;
int main() {
int LA[] = {1,3,5,7,8};
int k = 3, n = 5;
int i, j;

cout<<"The original array elements are"<<endl;

for(i = 0; i<n; i++) {


cout<< i <<"=" << LA[i]<<endl;
}

j = k;

while( j < n) {
LA[j] = LA[j+1];
j = j + 1;
}

n = n -1;

cout<<"The array elements after deletion"<<endl;

for(i = 0; i<n; i++) {


cout<< i <<"=" << LA[i]<<endl;
}
}
3. SEARCH ELEMENT FROM ARRAY
1. Start
2. Set J = 0
3. Repeat steps 4 and 5 while J < N
4. IF LA[J] is equal ITEM THEN GOTO STEP 6
5. Set J = J +1
6. PRINT J, ITEM
7. Stop
#include <iostream>
using namespace std;
SEARCH [ C++ CODE ]
main() {
int LA[] = {1,3,5,7,8};
int item = 5, n = 5;
int i = 0, j = 0;

cout<<"The original array elements are:"<<endl;

for(i = 0; i<n; i++) {


cout<<i<<"="<<LA[i]<<endl;
}

while( j < n){


if( LA[j] == item ) {
break;
}

j = j + 1;
}

cout<<"Found element at position="<< j+1 <<" and index="<<j;


}
SEARCH AND UPDATE
ACTIVITY#2

YOU HAVE TO SEARCH A


ELEMENT AND THEN UPDATE IT?
2D-ARRAY
• A MULTI-DIMENSIONAL ARRAY CAN BE TERMED AS AN ARRAY OF ARRAYS THAT
STORES HOMOGENEOUS DATA IN TABULAR FORM. DATA IN MULTIDIMENSIONAL
ARRAYS ARE STORED IN ROW-MAJOR ORDER.

• SIZE OF MULTIDIMENSIONAL ARRAYS:

• THE TOTAL NUMBER OF ELEMENTS THAT CAN BE STORED IN A


MULTIDIMENSIONAL ARRAY CAN BE CALCULATED BY MULTIPLYING THE SIZE OF
ALL THE DIMENSIONS.

• FOR EXAMPLE:

• THE ARRAY INT X[10][20] CAN STORE TOTAL (10*20) = 200 ELEMENTS.
EXAMPLE OF 2D-ARRAY C++
INT ARR[3][2] = {{5, -5},{4, 7}, {9, 17}}; // USE OF NESTED FOR LOOP
// ACCESS ROWS OF THE ARRAY
FOR (INT I = 0; I < 3; ++I) {
// ACCESS COLUMNS OF THE ARRAY
FOR (INT J = 0; J < 2; ++J) {
COUT << “ARR[" << I << "][" << J << "] = " << ARR[I][J] << ENDL;
}
}
TRANSPOSE OF MATRIX
FOR (INT I = 0; I < ROW; ++I)
FOR (INT J = 0; J < COLUMN; ++J) {
TRANSPOSE[J][I] = ARR[I][J];
}
• COMPLEX PROBLEMS WILL BE IN NEXT LECTURE (LIKE BINARY SEARCH, SORTING
ETC.)

You might also like