Table of Contents

    Array

    Chapter 18.2

    Array in Data Structures

    Learn what an array is, why arrays are used, how array indexing works, how to access, update, insert, delete, search, and traverse array elements, and how arrays are used in real-world programming problems.

    Introduction

    An array is one of the most basic and important data structures in programming. It is used to store multiple values together under one name. Instead of creating many separate variables, an array allows us to store a collection of related values in an organized way.

    For example, suppose we want to store marks of five students. Without an array, we may need separate variables such as marks1, marks2, marks3, marks4, and marks5. This approach becomes difficult when the number of students increases. With an array, we can store all marks together using one variable name.

    Arrays are widely used because they make it easier to store, access, process, search, and update multiple values. Many advanced data structures and algorithms are also built using arrays, so understanding arrays is an essential first step in learning Data Structures and Algorithms.

    "An array is a data structure that stores multiple values of the same type in a continuous and ordered collection."

    Simple Definition of Array

    An array is a linear data structure that stores a group of elements in a sequence. Each element can be accessed using its position number, called an index.

    In simple words:

    • An array stores multiple values together.
    • All values are usually stored in a fixed order.
    • Each value has a position called an index.
    • Array indexing usually starts from 0 in many programming languages.
    • Arrays are useful for storing lists of related data.
    • Arrays allow easy traversal using loops.
    ARRAY CONCEPT
    Array = Multiple Values + One Variable Name + Index Access
    Important: An array is one of the simplest linear data structures. It stores elements in a sequential order and allows access to elements using index positions.

    Why Do We Need Arrays?

    Arrays are needed when we want to store and manage multiple values of the same category. Without arrays, handling large amounts of similar data becomes difficult and repetitive.

    Suppose a teacher wants to store marks of 100 students. Creating 100 separate variables is not practical. Instead, an array can store all 100 marks together, and a loop can be used to process them easily.

    Without Array

    • Many separate variables are needed.
    • Code becomes lengthy and repetitive.
    • Processing multiple values becomes difficult.
    • Loops cannot be used easily with separate variables.
    • Searching and sorting become harder.
    • Managing large data becomes confusing.

    With Array

    • Multiple values are stored under one name.
    • Code becomes shorter and cleaner.
    • Loops can process all values easily.
    • Searching and sorting become easier.
    • Data is stored in an organized sequence.
    • Large collections become easier to manage.

    Prerequisites

    Before learning arrays, students should understand some basic programming concepts. These concepts make it easier to understand how arrays store and process multiple values.

    Prerequisite Topic Why It Is Needed
    Variables Arrays are like variables that can store multiple values.
    Data Types Array elements usually have a specific data type.
    Loops Loops are commonly used to access and process array elements.
    Conditional Statements Used for searching, filtering, and comparing array elements.
    Functions / Methods Array operations can be organized into reusable functions.
    Indexing Array values are accessed using index positions.
    Basic Memory Concept Helps understand how array elements are stored in sequence.

    Real-World Analogy of Array

    To understand arrays, imagine a row of lockers in a school. Each locker has a number, and each locker can store one student's item. If you know the locker number, you can directly access the item stored in that locker.

    Similarly, an array stores multiple values in numbered positions. Each position is called an index. If we know the index, we can access the value stored at that position.

    Array as Numbered Lockers

    An array is like a row of numbered lockers. Each locker has a position number, and each position stores one value.

    Array Indexing

    Array indexing means identifying each element in an array using a position number. In many programming languages, array indexing starts from 0. This means the first element is at index 0, the second element is at index 1, and so on.

    Example array:

    
    marks = [85, 92, 76, 88, 69]
    
    Index Value Meaning
    0 85 First element
    1 92 Second element
    2 76 Third element
    3 88 Fourth element
    4 69 Fifth element
    INDEX RULE
    First Element usually starts at Index 0
    Beginner Tip: If an array has 5 elements, the indexes are usually 0, 1, 2, 3, and 4. The last index is generally array size - 1.

    Basic Structure of an Array

    An array has a name, elements, and indexes. The array name is used to refer to the collection. Each value inside the array is called an element. The position number of each element is called an index.

    Array Part Meaning Example
    Array Name Name used to refer to the array. marks
    Element Value stored in the array. 85, 92, 76
    Index Position number of an element. 0, 1, 2
    Size / Length Total number of elements. 5

    Conceptual Array Example

    The following example shows a conceptual array that stores student names.

    
    // Conceptual array
    
    students = ["Rahul", "Ayesha", "John", "Priya"]
    
    print students[0]   // Rahul
    print students[1]   // Ayesha
    print students[2]   // John
    print students[3]   // Priya
    

    Here, students[0] gives the first student, students[1] gives the second student, and so on.

    Common Operations on Arrays

    Arrays support several common operations. These operations are very important in data structure learning.

    Operation Meaning Example
    Access Getting an element using index. marks[0]
    Update Changing an existing element. marks[2] = 80
    Traversal Visiting each element one by one. Display all marks.
    Insertion Adding a new element. Add a new mark.
    Deletion Removing an element. Remove a student mark.
    Searching Finding a specific element. Find whether 92 exists.
    Sorting Arranging elements in order. Sort marks from low to high.

    Accessing Array Elements

    Accessing means getting a value from an array using its index. Arrays allow direct access to elements if we know the index.

    
    // Conceptual access
    
    marks = [85, 92, 76, 88]
    
    firstMark = marks[0]
    secondMark = marks[1]
    

    In this example, marks[0] returns 85 and marks[1] returns 92.

    Advantage Array elements can be accessed quickly using index positions.

    Updating Array Elements

    Updating means changing the value stored at a specific index.

    
    // Conceptual update
    
    marks = [85, 92, 76, 88]
    
    marks[2] = 80
    
    // Updated array: [85, 92, 80, 88]
    

    In this example, the value at index 2 changes from 76 to 80.

    Traversing an Array

    Traversing means visiting each element of an array one by one. Loops are commonly used for array traversal.

    
    // Conceptual traversal
    
    marks = [85, 92, 76, 88]
    
    for each mark in marks:
        print mark
    

    Traversal is useful when we want to display all values, calculate total, find maximum value, or search for an element.

    Insertion in Array

    Insertion means adding a new element to an array. In some languages, arrays have fixed size, so insertion may require shifting elements or creating a new larger array. In other languages, dynamic arrays or lists can grow automatically.

    Example:

    
    // Conceptual insertion
    
    marks = [85, 92, 76]
    
    add 88
    
    // Result: [85, 92, 76, 88]
    
    Note: Insertion is easier at the end of an array. Inserting in the middle may require shifting elements.

    Deletion in Array

    Deletion means removing an element from an array. If an element is removed from the middle, remaining elements may need to shift to fill the empty position.

    
    // Conceptual deletion
    
    marks = [85, 92, 76, 88]
    
    remove value at index 1
    
    // Result: [85, 76, 88]
    

    In this example, 92 is removed from the array.

    Searching in Array

    Searching means finding whether a specific value exists in an array. A simple way to search is to check each element one by one. This is called linear search.

    
    // Conceptual linear search
    
    marks = [85, 92, 76, 88]
    target = 92
    
    for each mark in marks:
        if mark == target:
            print "Found"
    

    Linear search is simple, but it may become slower when the array contains a very large number of elements.

    Sorting an Array

    Sorting means arranging array elements in a specific order, such as ascending order or descending order.

    Example:

    
    Original array: [85, 92, 76, 88, 69]
    
    Sorted ascending: [69, 76, 85, 88, 92]
    
    Sorted descending: [92, 88, 85, 76, 69]
    

    Sorting is useful for ranking, searching, reports, leaderboards, and data analysis.

    Java Example: Array Basics

    The following Java example shows how to create an array, access elements, update values, and traverse the array using a loop.

    Prerequisites: To understand this example, you should know variables, data types, arrays, loops, and basic Java syntax.
    
    public class Main {
        public static void main(String[] args) {
    
            int[] marks = {85, 92, 76, 88, 69};
    
            System.out.println("First mark: " + marks[0]);
    
            marks[2] = 80;
    
            System.out.println("All marks:");
    
            for (int i = 0; i < marks.length; i++) {
                System.out.println(marks[i]);
            }
        }
    }
    

    In this example, the array stores five marks. The first mark is accessed using index 0. The value at index 2 is updated, and then all marks are displayed using a loop.

    JavaScript Example: Array Basics

    JavaScript arrays are dynamic, which means they can grow or shrink easily.

    Prerequisites: To understand this example, you should know JavaScript variables, arrays, loops, and console output.
    
    const marks = [85, 92, 76, 88, 69];
    
    console.log("First mark: " + marks[0]);
    
    marks[2] = 80;
    
    console.log("All marks:");
    
    for (let i = 0; i < marks.length; i++) {
        console.log(marks[i]);
    }
    

    This JavaScript example creates an array, accesses the first element, updates one element, and displays all elements using a loop.

    PHP Example: Array Basics

    PHP also supports arrays and provides many built-in functions for working with them.

    Prerequisites: To understand this example, you should know PHP variables, arrays, loops, and echo statement.
    
    <?php
    
    $marks = [85, 92, 76, 88, 69];
    
    echo "First mark: " . $marks[0] . "<br>";
    
    $marks[2] = 80;
    
    echo "All marks:<br>";
    
    for ($i = 0; $i < count($marks); $i++) {
        echo $marks[$i] . "<br>";
    }
    
    ?>
    

    In this example, PHP stores marks in an array and displays them one by one.

    C# Example: Array Basics

    The following C# example demonstrates basic array operations.

    Prerequisites: To understand this example, you should know C# variables, arrays, loops, and console output.
    
    using System;
    
    class Program
    {
        static void Main()
        {
            int[] marks = {85, 92, 76, 88, 69};
    
            Console.WriteLine("First mark: " + marks[0]);
    
            marks[2] = 80;
    
            Console.WriteLine("All marks:");
    
            for (int i = 0; i < marks.Length; i++)
            {
                Console.WriteLine(marks[i]);
            }
        }
    }
    

    This C# example shows how array elements can be accessed and updated using index positions.

    One-Dimensional Array

    A one-dimensional array stores data in a single line or sequence. It is the simplest form of array.

    
    marks = [85, 92, 76, 88]
    

    One-dimensional arrays are useful for storing simple lists such as marks, names, prices, ages, or scores.

    Two-Dimensional Array

    A two-dimensional array stores data in rows and columns, similar to a table or matrix.

    
    matrix = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    

    Two-dimensional arrays are useful for tables, grids, matrices, game boards, seating arrangements, and spreadsheet-like data.

    Column 0 Column 1 Column 2
    Row 0 1 2 3
    Row 1 4 5 6
    Row 2 7 8 9

    Real-World Example: Student Marks Array

    In a student management system, an array can store marks of students.

    
    marks = [85, 92, 76, 88, 69]
    

    With this array, the program can:

    • Display all marks.
    • Find highest marks.
    • Find lowest marks.
    • Calculate average marks.
    • Search for a specific mark.
    • Sort marks in ascending or descending order.

    Example: Finding Total and Average

    Arrays are commonly used to calculate total and average values.

    
    // Conceptual total and average
    
    marks = [85, 92, 76, 88, 69]
    
    total = 0
    
    for each mark in marks:
        total = total + mark
    
    average = total / numberOfMarks
    
    print average
    

    This example shows how traversal helps process all array elements.

    Example: Finding Highest Value

    Arrays are also useful for finding maximum or minimum values.

    
    // Conceptual maximum value logic
    
    marks = [85, 92, 76, 88, 69]
    
    highest = marks[0]
    
    for each mark in marks:
        if mark > highest:
            highest = mark
    
    print highest
    

    Here, the program assumes the first value is the highest and then compares it with all other values.

    Array and Memory

    In many programming languages, array elements are stored in continuous memory locations. This makes index access fast because the program can calculate the memory location of an element using its index.

    MEMORY IDEA
    Array Elements are stored Sequentially

    This is why arrays are efficient for accessing elements by position. However, inserting or deleting elements in the middle can be slower because other elements may need to shift.

    Advantages of Arrays

    Arrays are simple, fast, and widely used. They are usually the first data structure students learn.

    Benefits of Arrays

    • Stores multiple values under one name.
    • Easy to access elements using index.
    • Easy to traverse using loops.
    • Useful for storing ordered data.
    • Good for simple lists of values.
    • Supports searching and sorting operations.
    • Helps reduce number of variables.
    • Works well with mathematical and statistical operations.
    • Forms the base for many advanced data structures.
    • Easy for beginners to understand and practice.

    Limitations of Arrays

    Arrays are useful, but they are not perfect for every situation. Understanding their limitations helps in choosing the correct data structure.

    Fixed Size in Some Languages In some languages, array size must be decided in advance and cannot easily change later.
    Insertion Can Be Costly Inserting an element in the middle may require shifting many elements.
    Deletion Can Be Costly Deleting an element from the middle may also require shifting elements.
    Same Type Requirement In many languages, arrays store elements of the same data type.
    Searching Can Be Slow Searching an unsorted array may require checking each element one by one.

    Array vs Variable

    A variable usually stores one value, while an array stores multiple values together.

    Basis Variable Array
    Storage Stores one value. Stores multiple values.
    Example mark = 85 marks = [85, 92, 76]
    Access Accessed directly by variable name. Accessed using array name and index.
    Best Use Single value. Collection of related values.

    Array vs List

    In some languages, arrays and lists are different. Arrays may have fixed size, while lists may be dynamic. However, at beginner level, both are often used to store multiple values.

    Basis Array List / Dynamic Array
    Size May be fixed in many languages. Can usually grow or shrink.
    Access Fast index-based access. Also supports index-based access.
    Insertion May require manual shifting or resizing. Often easier using built-in methods.
    Use Case Known-size collections. Changing-size collections.

    When Should You Use Arrays?

    Arrays are useful when the program needs to store multiple related values and access them by position.

    Use Arrays When

    • You need to store multiple values of the same category.
    • You know the number of elements or can manage the size.
    • You need fast access using index.
    • You want to process values using loops.
    • You need simple list-like storage.
    • You are working with marks, prices, scores, names, or IDs.
    • You need to perform searching or sorting operations.
    • You are learning basic data structures.

    Common Mistakes Beginners Make

    Beginners often make mistakes while working with arrays because indexing and size rules require careful attention.

    Common Mistakes

    • Forgetting that indexing usually starts from 0.
    • Trying to access an index that does not exist.
    • Confusing array length with last index.
    • Using too many separate variables instead of an array.
    • Not using loops to process array elements.
    • Assuming arrays can always grow automatically.
    • Mixing unrelated data in one array.
    • Not validating index before accessing an element.

    Better Approach

    • Remember that first index is often 0.
    • Last index is usually array length minus 1.
    • Use loops for traversal.
    • Store related values together.
    • Check index range before accessing values.
    • Use dynamic lists when size changes frequently.
    • Use meaningful array names such as marks, students, prices.
    • Practice common operations like search, update, and traversal.

    Best Practices for Arrays

    Following best practices helps write cleaner and safer array-based programs.

    Recommended Practices

    • Use meaningful array names.
    • Store related values in one array.
    • Use loops to process array elements.
    • Be careful with index positions.
    • Do not access indexes outside the array range.
    • Use constants or variables for array size when needed.
    • Use dynamic arrays or lists if the size changes often.
    • Keep array data consistent.
    • Write separate functions for common operations.
    • Practice searching, sorting, and traversal with arrays.

    Mini Practice Activity

    Complete the following practice tasks to strengthen your understanding of arrays.

    Task Description Expected Learning
    Task 1 Create an array of five student marks. Understand basic array creation.
    Task 2 Display all array elements using a loop. Practice array traversal.
    Task 3 Find the total and average marks. Practice processing array values.
    Task 4 Find the highest and lowest marks. Practice comparison using arrays.
    Task 5 Search whether a specific mark exists in the array. Practice linear search.
    Task 6 Sort the marks in ascending order. Understand basic sorting idea.

    Frequently Asked Questions

    1. What is an array?

    An array is a data structure that stores multiple values in a sequence under one variable name. Each value can be accessed using an index.

    2. Why do we use arrays?

    Arrays are used to store and manage multiple related values easily. They reduce the need for many separate variables and allow processing using loops.

    3. What is an array index?

    An index is the position number of an element in an array. In many languages, indexing starts from 0.

    4. What is the first index of an array?

    In many programming languages, the first index of an array is 0.

    5. What is the last index of an array?

    The last index is usually the length of the array minus 1. For example, if an array has 5 elements, the last index is 4.

    6. What is array traversal?

    Array traversal means visiting each element of an array one by one, usually using a loop.

    7. Can arrays store different data types?

    In many languages, arrays store the same type of data. Some languages allow mixed values, but it is usually better to store related and consistent data.

    8. What is a one-dimensional array?

    A one-dimensional array stores values in a single sequence, like a simple list.

    9. What is a two-dimensional array?

    A two-dimensional array stores values in rows and columns, like a table or matrix.

    10. What is the main advantage of an array?

    The main advantage of an array is that it stores multiple values together and allows fast access using index positions.

    Summary

    An array is one of the most important and beginner-friendly data structures. It stores multiple values in a sequence and allows each value to be accessed using an index.

    Arrays are useful when we need to store related data such as student marks, product prices, employee IDs, game scores, or names. They help reduce the number of variables and make it easier to process data using loops.

    Common array operations include accessing, updating, traversing, inserting, deleting, searching, and sorting. Arrays are simple and efficient for index-based access, but insertion and deletion in the middle can be costly because elements may need to shift.

    Key Takeaway

    An array is a linear data structure that stores multiple values in an ordered sequence. Each value is accessed using an index. Arrays are useful for storing related data, processing values with loops, and learning the foundation of Data Structures and Algorithms.