amp-web-push-widget button.amp-subscribe { display: inline-flex; align-items: center; border-radius: 5px; border: 0; box-sizing: border-box; margin: 0; padding: 10px 15px; cursor: pointer; outline: none; font-size: 15px; font-weight: 500; background: #4A90E2; margin-top: 7px; color: white; box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.5); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } /** * Jetpack related posts */ /** * The Gutenberg block */ .jp-related-posts-i2 { margin-top: 1.5rem; } .jp-related-posts-i2__list { --hgap: 1rem; display: flex; flex-wrap: wrap; column-gap: var(--hgap); row-gap: 2rem; margin: 0; padding: 0; list-style-type: none; } .jp-related-posts-i2__post { display: flex; flex-direction: column; /* Default: 2 items by row */ flex-basis: calc( ( 100% - var(--hgap) ) / 2 ); } /* Quantity qeuries: see https://alistapart.com/article/quantity-queries-for-css/ */ .jp-related-posts-i2__post:nth-last-child(n+3):first-child, .jp-related-posts-i2__post:nth-last-child(n+3):first-child ~ * { /* From 3 total items on, 3 items by row */ flex-basis: calc( ( 100% - var(--hgap) * 2 ) / 3 ); } .jp-related-posts-i2__post:nth-last-child(4):first-child, .jp-related-posts-i2__post:nth-last-child(4):first-child ~ * { /* Exception for 4 total items: 2 items by row */ flex-basis: calc( ( 100% - var(--hgap) ) / 2 ); } .jp-related-posts-i2__post-link { display: flex; flex-direction: column; row-gap: 0.5rem; width: 100%; margin-bottom: 1rem; line-height: 1.2; } .jp-related-posts-i2__post-link:focus-visible { outline-offset: 2px; } .jp-related-posts-i2__post-img { order: -1; max-width: 100%; } .jp-related-posts-i2__post-defs { margin: 0; list-style-type: unset; } /* Hide, except from screen readers */ .jp-related-posts-i2__post-defs dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; } .jp-related-posts-i2__post-defs dd { margin: 0; } /* List view */ .jp-relatedposts-i2[data-layout="list"] .jp-related-posts-i2__list { display: block; } .jp-relatedposts-i2[data-layout="list"] .jp-related-posts-i2__post { margin-bottom: 2rem; } /* Breakpoints */ @media only screen and (max-width: 640px) { .jp-related-posts-i2__list { display: block; } .jp-related-posts-i2__post { margin-bottom: 2rem; } } /* Container */ #jp-relatedposts { display: none; padding-top: 1em; margin: 1em 0; position: relative; clear: both; } .jp-relatedposts:after { content: ''; display: block; clear: both; } /* Headline above related posts section, labeled "Related" */ #jp-relatedposts h3.jp-relatedposts-headline { margin: 0 0 1em 0; display: inline-block; float: left; font-size: 9pt; font-weight: bold; font-family: inherit; } #jp-relatedposts h3.jp-relatedposts-headline em:before { content: ""; display: block; width: 100%; min-width: 30px; border-top: 1px solid #dcdcde; border-top: 1px solid rgba(0,0,0,.2); margin-bottom: 1em; } #jp-relatedposts h3.jp-relatedposts-headline em { font-style: normal; font-weight: bold; } /* Related posts items (wrapping items) */ #jp-relatedposts .jp-relatedposts-items { clear: left; } #jp-relatedposts .jp-relatedposts-items-visual { margin-right: -20px; } /* Related posts item */ #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { float: left; width: 33%; margin: 0 0 1em; /* Needs to be same as the main outer wrapper for Related Posts */ box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post { padding-right: 20px; filter: alpha(opacity=80); -moz-opacity: .8; opacity: .8; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n+4), #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post:nth-child(3n+4) { clear: both; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover .jp-relatedposts-post-title a { text-decoration: underline; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:hover { filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; } /* Related posts item content */ #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title, #jp-relatedposts .jp-relatedposts-items p, #jp-relatedposts .jp-relatedposts-items time { font-size: 14px; line-height: 20px; margin: 0; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs { position:relative; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs a.jp-relatedposts-post-aoverlay { position:absolute; top:0; bottom:0; left:0; right:0; display:block; border-bottom: 0; } #jp-relatedposts .jp-relatedposts-items p, #jp-relatedposts .jp-relatedposts-items time { margin-bottom: 0; } #jp-relatedposts .jp-relatedposts-items-visual h4.jp-relatedposts-post-title { text-transform: none; margin: 0; font-family: inherit; display: block; max-width: 100%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a { font-size: inherit; font-weight: normal; text-decoration: none; filter: alpha(opacity=100); -moz-opacity: 1; opacity: 1; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-title a:hover { text-decoration: underline; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post span { display: block; max-width: 90%; overflow: hidden; text-overflow: ellipsis; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post span { height: auto; max-width: 100%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date, #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-context { opacity: .6; } /* Hide the date by default, but leave the element there if a theme wants to use css to make it visible. */ .jp-relatedposts-items .jp-relatedposts-post .jp-relatedposts-post-date { display: none; } /* Behavior when there are thumbnails in visual mode */ #jp-relatedposts .jp-relatedposts-items-visual div.jp-relatedposts-post-thumbs p.jp-relatedposts-post-excerpt { display: none; } /* Behavior when there are no thumbnails in visual mode */ #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs p.jp-relatedposts-post-excerpt { overflow: hidden; } #jp-relatedposts .jp-relatedposts-items-visual .jp-relatedposts-post-nothumbs span { margin-bottom: 1em; } /* List Layout */ #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post { clear: both; width: 100%; } #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img { float: left; overflow: hidden; max-width: 33%; margin-right: 3%; } #jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title { display: inline-block; max-width: 63%; } /* * Responsive */ @media only screen and (max-width: 640px) { #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width: 50%; } #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post:nth-child(3n) { clear: left; } #jp-relatedposts .jp-relatedposts-items-visual { margin-right: 20px; } } @media only screen and (max-width: 320px) { #jp-relatedposts .jp-relatedposts-items .jp-relatedposts-post { width: 100%; clear: both; margin: 0 0 1em; } #jp-relatedposts .jp-relatedposts-list .jp-relatedposts-post img.jp-relatedposts-post-img, #jp-relatedposts .jp-relatedposts-list h4.jp-relatedposts-post-title { float: none; max-width: 100%; margin-right: 0; } } /* * Hide the related post section in the print view of a post */ @media print { .jp-relatedposts { display:none ; } }.wp-block-jetpack-rating-star span:not([aria-hidden="true"]) { display: none; } .amp-logo amp-img{width:190px} .amp-menu input{display:none;}.amp-menu li.menu-item-has-children ul{display:none;}.amp-menu li{position:relative;display:block;}.amp-menu > li a{display:block;} /* Inline styles */ ins.acss263b2{display:block;}div.acss21998{clear:both;float:left;margin:0 0 20px 0;max-width:100%;}ins.acss6cf41{display:block;text-align:center;}div.acss138d7{clear:both;}div.acssf5b84{--relposth-columns:3;--relposth-columns_m:2;--relposth-columns_t:2;}div.acssc61bb{aspect-ratio:1/1;background:transparent url(https://code4coding.com/wp-content/plugins/related-posts-thumbnails/img/default.png) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acss6bdea{color:#333333;font-family:Arial;font-size:12px;height:75px;}div.acss1efa8{aspect-ratio:1/1;background:transparent url(https://code4coding.com/wp-content/uploads/2019/08/product2.jpg) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acssceaef{aspect-ratio:1/1;background:transparent url(https://code4coding.com/wp-content/uploads/2024/03/w1-copy-300x275.jpg) no-repeat scroll 0% 0%;height:150px;max-width:150px;}div.acss366eb{aspect-ratio:1/1;background:transparent url(https://code4coding.com/wp-content/uploads/2023/01/E.jpg) no-repeat scroll 0% 0%;height:150px;max-width:150px;}a.acss9bfd5{font-size:14.52427184466pt;}a.acssc37f8{font-size:16.427184466019pt;}a.acss29e97{font-size:16.631067961165pt;}a.acss361c8{font-size:17.174757281553pt;}a.acss51c7b{font-size:20.029126213592pt;}a.acssa2e10{font-size:20.097087378641pt;}a.acss5dd67{font-size:21.728155339806pt;}a.acssf0e8e{font-size:12.077669902913pt;}a.acss759e3{font-size:17.922330097087pt;}a.acss0abf8{font-size:21.252427184466pt;}a.acss2c000{font-size:13.300970873786pt;}a.acss349b0{font-size:10.038834951456pt;}a.acssf23c5{font-size:8pt;}a.acss7e0a8{font-size:9.2233009708738pt;}a.acsse6f77{font-size:16.970873786408pt;}a.acssc51bb{font-size:14.116504854369pt;}a.acss38f57{font-size:11.26213592233pt;}a.acss066f0{font-size:22pt;}a.acss4e811{font-size:17.31067961165pt;}a.acss9cc90{font-size:12.417475728155pt;}a.acss01721{font-size:15.339805825243pt;}a.acsse9f66{font-size:15.543689320388pt;}a.acss72254{font-size:20.708737864078pt;}a.acsseedeb{font-size:20.776699029126pt;}a.acss25b87{font-size:14.320388349515pt;}a.acss7c517{font-size:12.757281553398pt;}a.acss6bf84{font-size:13.504854368932pt;}a.acss7a3ee{font-size:18.941747572816pt;}a.acssf92d5{font-size:18.26213592233pt;}a.acss551d3{font-size:16.291262135922pt;} .icon-widgets:before {content: "\e1bd";}.icon-search:before {content: "\e8b6";}.icon-shopping-cart:after {content: "\e8cc";}
Categories: category

Array Data Structure: Definition, Types, Operations & Advantages

Array Data Structure: Definition, Types, Operations & Advantages

Array Data Structure

Introduction

In this post, we will discuss the array data structure, its types, operations, advantages, and use cases in programming. Understanding arrays is fundamental to efficient data management and algorithm implementation.

What is an Array?

An array in computer programming is a fundamental and versatile data structure that stores a fixed-size sequence of elements of the same type. Arrays are widely used to store multiple values in a single variable. They provide fast access to elements through their index, making it easy to work efficiently with large data collections.

Each element in an array can be accessed using an index, which represents its position within the array. The index usually starts at 0, meaning the first element is at index 0, the second at index 1, and so on.

Key Concepts of Arrays

1. Fixed-Size

  • Arrays have a predefined (fixed) size that is determined when the array is created.
  • The size cannot be changed once defined, which is known as static allocation.
  • Some languages allow dynamic resizing through specialized array structures.

Example:

int num[10]; // An array of 10 integers (Fixed number of elements and same type)

2. Homogeneous Data Type

  • All elements in an array must be of the same data type.
  • Strongly typed languages like C and Java enforce this strictly, while flexible languages like Python allow mixed types (not advisable for efficiency).

3. Indexed Access

  • Arrays are indexed collections of elements.
  • Elements can be accessed directly using their index.
  • Most programming languages use zero-based indexing.

Example in Python:

arr = [10, 20, 30, 40, 50]
print(arr[0])  # Output: 10
print(arr[2])  # Output: 30

4. Continuous Memory Allocation

  • Arrays store elements in contiguous memory locations.
  • Accessing an element by its index is extremely fast (constant time complexity, O(1)).
  • Address calculation formula:
    address = Base address + (Size of each element * index)

5. Mutability

  • Array elements can be modified after the array is created.

Example in C:

int arr[4] = {2, 4, 6, 8};
arr[1] = 10; // Changes the second element to 10

Types of Arrays

1. One-Dimensional Array (1D Array)

  • The simplest form of an array, storing elements in a single line.
  • Example:
    arr = [1, 2, 3, 4, 5]
    print(arr[2])  # Output: 3

2. Two-Dimensional Array (2D Array)

  • Used to store data in a tabular format (rows and columns).
  • Example:
    arr = [
        [1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]
    ]
    print(arr[1][2])  # Output: 6

3. Multidimensional Arrays

  • Arrays with more than two dimensions, often used for complex data like 3D objects or matrices.
  • Example: A 3D array can represent a cube of values.

Operations on Arrays

1. Accessing Elements

  • Direct access using an index (O(1) time complexity).

2. Searching Elements

  • Linear Search: Checks each element one by one (O(n) complexity).
  • Binary Search: Efficient search for sorted arrays (O(log n) complexity).

3. Insertion

  • At the end: Easy if space is available.
  • At the beginning or middle: Requires shifting elements, making it costly (O(n) complexity).

4. Traversing Elements

  • Visiting each element sequentially (O(n) complexity).

Memory Allocation in Arrays

1. Static Arrays

  • Allocated in stack memory during compile-time.
  • Fixed size, cannot be resized.

2. Dynamic Arrays

  • Allocated in heap memory during run-time.
  • Languages like C/C++ use malloc() or new for dynamic allocation.
  • Python and Java provide dynamic array structures (Lists in Python, ArrayList in Java).

Advantages of Arrays

  • Constant Time Access: O(1) access to elements.
  • Cache-Friendly: Elements are stored close in memory, improving performance.
  • Efficient for Fixed Data: Minimal overhead compared to linked structures.
  • Predictable Memory Usage: Statically allocated arrays ensure memory predictability.

Disadvantages of Arrays

  • Fixed Size: Cannot change size after creation (static arrays).
  • Costly Insertion/Deletion: Shifting elements is time-consuming (O(n) complexity).
  • Homogeneous Data: Cannot store mixed data types (in most languages).

Dynamic Arrays in Programming Languages

  • Python: Uses built-in lists.
  • Java: Uses ArrayList.
  • C++: Uses std::vector.

Example of dynamic array behavior:

  • If a dynamic array of size 4 reaches capacity, it resizes to 8, copying all elements.
  • Insertions become amortized O(1) as resizing happens infrequently.

Comparison with Other Data Structures

Linked Lists vs. Arrays

  • Arrays: Faster indexing but costly insertions/deletions.
  • Linked Lists: Efficient insertions/deletions but slower access (O(n) complexity).

Arrays vs. Hash Tables

  • Arrays: Simple structure with indexed access.
  • Hash Tables: Flexible key-value access with higher memory overhead.

Use Cases of Arrays

  • Data Storage: Lists, sequences, and collections.
  • Sorting & Searching Algorithms: QuickSort, MergeSort, Binary Search.
  • Graph Representation: Adjacency matrices in graph algorithms.
  • Image Processing: Digital images stored as 2D arrays.
  • Mathematical Computations: Used in dynamic programming and simulations.

 

Conclusion

Arrays are one of the most fundamental data structures in programming, offering efficient storage, quick access, and structured organization. They are widely used across different applications, from data management to algorithm implementation. Understanding arrays and their operations is crucial for writing optimized and scalable code.

Let me know if you need further refinements! 🚀

 

Suggested for you

Code to read and print integers of an array in Java

Code to read and print strings of an array in Java

Code to read and print characters of an array in Java

Code to read and print integers of an array in C++

Code to read and print strings of an array in C++

Code to read and print characters of an array in C++

Code to read and print integers of an array in C

Code to read and print strings of an array in C

 

 

Similar post

Array in Programming language

One dimensional array in C language

One dimensional array in C++ language

Two dimension array in Java language

Two dimension array in C language

Two dimension array in C++ language

Three dimension array in Java language

Three dimension array in C language

Three dimension array in C++ language

 

20 ways to subtract two numbers in Java
Karmehavannan

I am Mr S.Karmehavannan. Founder and CEO of this website. This website specially designed for the programming learners and very especially programming beginners, this website will gradually lead the learners to develop their programming skill.

Share
Published by
Karmehavannan

Recent Posts

20 ways to subtract two numbers in Java

20 ways to subtract two numbers in Java In this article, we will discuss the…

2 hours ago

10 simple ways to add two numbers in Java

10 simple ways to add two numbers in Java In this article, we will discuss…

1 month ago

Write a Python program to find the first n prime numbers

Write a Python program to find the first n prime numbers In this article we…

2 months ago

Python: Calculate Average of odd and even in a list using loops

Python: Calculate Average of odd and even in a list using loops In this post,…

2 months ago

Python: Average of Odd & Even Numbers from User Input

Python: Average of Odd & Even Numbers from User Input In this post, we will…

2 months ago

Explanation of one dimensional array (Data structure)

Explanation of one dimensional array In this post, we will discuss the concept of "Explanation…

4 months ago