آرایه (ساختار داده): تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
جز تمیزکاری با استفاده از AWB |
Kamranazad (بحث | مشارکتها) جز ←جایگزینی با [[وپ:اشتباه|اشتباهیاب]]: ازاي⟸ازای، اسامي⟸اسامی، ، الگوريتم⟸الگوریتم، ، انديس⟸اندیس، ، اولين⟸اولین، ، ايجاد⟸ایجاد، ، ا... |
||
خط ۱:
'''آرایه''' تعدادی [[متغیر (برنامه نویسی)|متغیر]] از یک نوع [[داده]] و تحت یک نام میباشد. هر یک از متغیرهای درون آرایه با یک شماره که به آن «اندیس» میگوییم از یکدیگر متمایز میشوند. متغیرهای درون آرایه را «عناصر آرایه» مینامند که همگی قابلیت نگهداری فقط یک نوع داده را دارند. عناصر درون آرایه از نظر فیزیکی مکانهای متوالی در [[حافظه اصلی]] رایانه را اشغال میکنند. بنا بر این تعداد عناصر درون آرایه محدود و ثابت میباشد. اما از نظر منطقی عناصر درون آرایه را میتوانند به صورت یک سطر و یا یک ستون (در آرایه یک بعدی) یا به صورت یک [[جدول]] یا [[ماتریس]] (در آرایه دو بعدی) و یا در داخل یک مکعب در آرایه سه بعدی تصور شوند. و یا حتی در ابعاد بیشتر که از این نظر محدودیتی وجود ندارد. برداریک آرایه یک بعدی است
خانههای آرایه توسط اندیس مشخص می شوند که یک عدد صحیح است، مثلا خانه شماره 5 یعنی خانه ای که
خط ۴۱:
در آرایه های 2 بعد به بالا برای اینکه بتوانیم عناصر را به صورت صحیح از خانه هایی که ذخیره شده اند بازیابی نماییم بایستی مشخص گردد که اگر ذخیرهی عناصر به شکل سطری است بازیابی آنها نیز به شکل سطری باشد و اگر ستونی است بازیابی آنها به صورت ستونی باشد.
==آرايههاي
آرايه
براي
==آرايههاي دو بعدي==
آرايه دو
آرايه
در
== آرايههاي چندبعدي ==
آرايه n بعدی مجموعه اي از m1×m2×…×mn عنصر داده اي است
==ویژگی آرایه ها==
خط ۷۰:
b11 , b21, b31 , b12 , b22 , b32 , b13 , b23 , b33 , b14 , b24 , b34
(2) نمایش حافظه برای آرایه های چندبعدی
(3) توصیفگر آرایه مانند برداراست بااین تفاوت که حدود بالا و پایین هر بعد نگهداری می شود.
==آرايه
آرايه پويا<ref>[//https://en.wikipedia.org/wiki/Dynamic_array]</ref>{{به انگلیسی|Dynamic Array}} آرايهای است که اندازهاش در زمان اجرا با عمل درج
در زبان برنامه
==درج عنصری در آرايه==
برای درج عنصری در آرايه تعدادی از عناصر بايد به سمت
در کل n-k+1 عنصر بايد جابجا شوند. اگر عنصر جديد در محل آخرين عنصر درج شود تنها عنصر آخر آرايه جابجا می شود.
به طور متوسط
با هربار عمل درج
(for (i:= n down to k
خط ۱۰۱:
==حذف عنصری از آرايه==
وقتی عنصری از آرايه حذف می شود عناصر بعدی بايد به سمت بالا منتقل شوند تا محل عنصر حذف شده پر شود. برای حذف عنصری که در مکان k ام قرار دارد، کليه عناصر از k+1 به بعد بايد به سمت بالا
در کل n-k عنصر بايد جابجا شوند. کمترين جابجائی وقتی است که عنصر آخر حذف شود که هيچ عنصری جابجا نمی شود. در
به طور متوسط
با هربار عمل درج
[item := A[k
خط ۱۱۹:
end
همانطور که مشاهده می شود عمليات درج و حذف در آرايه به طور متوسط منجر به انتقال نصف عناصر آرايه می شود. بنابراين در مواردی که مجموعه عناصر دادهای به طور مکرر درحال اضافه و حذف هستند آرايه
==آرایه های شرکت پذیر(انجمنی)==
ویژگی مهم آرایهها که تاکنون مطرح شد،روش دستیابی به یک
== نمایش چند جملهایها به کمک آرایه==
خط ۱۳۳:
روش قبل برای ذخیره سازی چند جمله ای ممکن است مناسب نباشد برای مثال چند جمله ای شما ممکن است x^1000+1 باشد.
روش دیگری نیز برای ذخیره چند جمله ای ها وجود دارد دراین روش از یک آرایه با دو سطر و k ستون استفاده می شود. که k تعداد کل جملات
==ماتریس پراکنده یا اسپارس==
خط ۱۴۱:
ماتریس ها اکثریت عناصر مقدار صفر دارند.
از آنجاییکه ماتریس های اسپارس در عمل وجود دارند و برخی موارد اندازههای آنها بسیار بزرگ است می بایست روش بهینهتری را برای ذخیره آنها در
== مثالها ==
|