زمان تخمینی مطالعه: 6 دقیقه

آرایه مجموعه‌ای از آیتم‌ها هم نوع است که در مکان‌های حافظه به هم پیوسته ذخیره می‌شوند. این نوع داده یکی از محبوب‌ترین و ساده‌ترین ساختارهای داده است و اغلب برای پیاده سازی سایر ساختارهای داده استفاده می‌شود. هر آیتم در یک آرایه در شروع با 0 ایندکس می‌شود(در برخی زبان‌های برنامه نویسی با 1 شروع می‌شود.)

اصطلاحات پایه آرایه

نمایش آرایه

نمایش یک آرایه را می‌توان با اعلان آن تعریف کرد. اعلان به معنای تخصیص حافظه برای آرایه‌ای با اندازه معین است.

آرایه‌ها را می‌توان به روش‌های مختلف در زبان‌های مختلف تعریف کرد. برای توضیح بهتر، در زیر برخی از تعریف‌های آرایه خاص زبان آورده شده است.

زبان ++C
int arr[5]; // This array will store integer type element
char arr[10]; // This array will store char type element
float arr[20]; // This array will store float type element
زبان C
int arr[5]; // This array will store integer type element
char arr[10]; // This array will store char type element
float arr[20]; // This array will store float type element
زبان جاوا
/* Static Arrays are arrays that are declared before runtime
and are assigned values while writing the code.
*/
// The syntax of declaring a static array is:
[]
= {, ,….. };
// Example:
int arr[] = { 2, 5, 6, 9, 7, 4, 3 };
زبان پایتون
arr = [10, 20, 30] # This array will store integer
arr2 = ['c', 'd', 'e'] # This array will store characters
arr3 = [28.5, 36.5, 40.2] # This array will store floating element
زبان #C
int[] arr = new int[5]; // This array will store integer type element
زبان جاوا اسکریپت
// JS code
let arr=[10,20,30]; // This array will store integer
let arr2 = ['c', 'd', 'e'] // This array will store characters
let arr3 = [28.5, 36.5, 40.2] // This array will store floating elements

روش‌های اعلان فوق تخصیص حافظه استاتیک یا کامپایل است ، به این معنی که هنگام تهیه یک برنامه، حافظه عنصر آرایه اختصاص می‌یابد. در اینجا فقط یک اندازه ثابت (به عنوان مثال اندازه‌ای که در داخل براکت‌ها ذکر شده است) حافظه برای ذخیره سازی اختصاص می‌یابد. اگر در تعریف آرایه‌ها اندازه بزرگتر را اعلام کنیم و تعداد کمتری از عناصر را ذخیره کنیم، منجر به هدر رفتن حافظه می‌شود یا در مواردی که اندازه کمتری را اعلام می‌کنیم، حافظه کافی برای ذخیره بقیه عناصر را نخواهیم داشت. در چنین مواردی، تخصیص حافظه ثابت ترجیح داده نمی‌شود.

آیا امکان ایجاد آرایه پویا وجود دارد؟

پاسخ به این سوال بله است. امکان تخصیص حافظه به صورت پویا وجود دارد. بنابراین، تخصیص حافظه پویا فرآیند تخصیص فضای حافظه در طول زمان اجرا یا زمان اجرا است. این امکان در زبان‌های زیر پشتیبانی می‌شود:

زبان ++C
int *array = new int[5];
زبان جاوا
int arr[10]; // Store integer elements
String arr[5]; // Store String type of elements
زبان پایتون ورژن 3:
# list of integers
my_list = [1, 2, 3, 4]
#Empty list
my_list = []
#list of mixed data types
my_list = ["Hello", 1, 5.5]
زبان #C
int[] numArray = new int[] {};

زبان جاوا اسکریپت
// JavaScript has dynamic arrays: their size is not predetermined, nor the type of data.

// Create array using literal
var x = ["a", "b", "c"]; 

// Create array using constructor
var x = new Array();	 

// Create array using constructor with items
var y = new Array("a", "b", "c");

زبان PHP
$arr = array("a","b","c");

چرا ساختارهای داده آرایه مورد نیاز است؟

فرض کنید کلاسی متشکل از 5 دانش آموز وجود دارد و باید نمرات آنها را در امتحان ثبت کنیم، می‌توانیم این کار را با تعریف مجزای پنج متغیر و پیگیری سوابق انجام دهیم، اما اگر تعداد دانش آموزان بسیار زیاد شود، چه می‌شود. برای دستکاری و حفظ داده‌ها بسیار چالش برانگیز است. معنی آن این است که ما می‌توانیم از متغیرهای عادی (v1، v2، v3، ..) زمانی که تعداد اشیاء کمی داریم استفاده کنیم. اما اگر بخواهیم تعداد زیادی نمونه را ذخیره کنیم، مدیریت آنها با متغیرهای عادی مشکل می‌شود. ایده آرایه‌ها این است که نمونه‌های زیادی را در یک متغیر ادغام کنیم.

انواع آرایه‎‌ها

آرایه‌ها به طور کلی به سه دسته تک بعدی، دو بعدی و سه بعدی تقسیم می‌شود. آرایه تک بعدی در واقع ردیفی از داده‌های پست سر هم است. آرایه‌های دو بعدی در واقع آرایه‌ای از آرایه‌ها یا به عبارتی یک ماتریس شامل ردیف و ستون است. آرایه‌های سه بعدی شکل پیچیده‌تری بوده و در واقع آرایه‌ای از آرایه‌های دو بعدی است.

انواع عملیات آرایه‌ها

مزایای استفاده از آرایه‌ها

معایب استفاده از آرایه‌ها

کاربرد آرایه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *