آرایه (ساختار داده): تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
FreshmanBot (بحث | مشارکت‌ها)
جز اصلاح فاصله مجازی + اصلاح نویسه با استفاده از AWB
خط ۳۵:
 
البته ما فرض کرده‌ایم که آدرس شروع آرایه در حافظه ۰ است، یعنی ما آدرس شروع آرایه را نسبت به خود آرایه
محاسبه می‌کنیم، یعنی نسبی است. اگر آدرس شروع ارایهارائه در حافظه ۰ نیست باید نتیجه فرمول قبلی
را با آدرس شروع آرایه در حافظه جمع کنیم تا آدرس نسبی به مطلق تبدیل شود.
 
خط ۴۶:
== آرایه‌های دو بعدی ==
یک آرایه دو بعدی مجموعه‌ای با m×n عنصر داده‌ای است که هر عنصر آن با یک جفت اندیس مشخص می‌شود.
آرایه دو بعدی را می‌توان به جدولی تشبیه کرد که دارای m سطر و n ستون است. هر سطر شامل عناصری است که اندیس‌های اول آنهاآن‌ها برابر است و هر ستون شامل عناصری هستند که اندیس‌های دوم آنهاآن‌ها برابر هستند.
آرایه‌های دوبعدی به عنوان ماتریس به کار می‌روند.
در تعریف آرایه دو بعدی دو مجموعه اندیس معین می‌شود. اندیس اول تعداد سطرها و اندیس آرایه تعداد ستون‌ها را مشخص می‌کند.
خط ۵۷:
 
=== روش سطری پیمایش و ذخیرهٔ آرایه‌ها ===
در پیمایش سطری آرایه‌ها اندیس‌های خانه‌های آرایه از سمت راست تغییر می‌کنند بطوریکهبه‌طوری‌که اندیس سمت چپ به صورت ثابت باقی می‌ماند و یک واحد یک واحد به اندیس سمت راست اضافه می‌شود تا زمانیکهزمانی‌که به ماکسیمم مقدار خود برسد که در این لحظه یک واحد به اندیس سمت چپ اضافه می‌شود و دوباره اندیس سمت راست شروع به افزایش می‌یابد واینو این کار تا زمانی ادامه پیدا می‌کند که هر ۲ اندیس به ماکسیمم مقدار خود برسد.
 
=== روش ستونی پیمایش و ذخیرهٔ آرایه‌ها ===
خط ۷۸:
 
در کل n-k+1 عنصر باید جابجا شوند. اگر عنصر جدید در محل آخرین عنصر درج شود تنها عنصر آخر آرایه جابجا می‌شود. بدترین حالت زمانی اتفاق می‌افتد که بخواهیم عنصر جدید را در مکان اول آرایه درج کنیم در این حالت تعداد جابجایی‌ها برابر است با n می‌شود.
به طوربه‌طور متوسط نیاز به n+1)/2) جابجایی است.
با هربار عمل درج یک واحد به n تعداد عناصر آرایه اضافه می‌شود. n تعداد عناصری که در آرایه درج شده‌اند را نشان می‌دهد و ربطی به طول آرایه ندارد.
الگوریتم زیر عنصر item را در مکان k ام آرایه A با n عنصر درج می‌کند.
خط ۹۹:
 
در کل n-k عنصر باید جابجا شوند. کمترین جابجائی وقتی است که عنصر آخر حذف شود که هیچ عنصری جابجا نمی‌شود. در بدترین حالت تعداد جابجایی‌ها برابر با n-1 است وقتی که اولین عنصر آرایه حذف می‌شود.
به طوربه‌طور متوسط نیاز به n-1)/2) جابجایی است.
با هربار عمل درج یک واحد به n (تعداد عناصر آرایه) اضافه می‌شود. n تعداد عناصری که در آرایه درج شده‌اند را نشان می‌دهد و ربطی به طول آرایه ندارد.
الگوریتم زیر عنصر kام آرایه A را حذف و در item ذخیره می‌کند.
خط ۱۱۵:
 
پیچیدگی الگوریتم فوق (O(n است.
همان‌طور که مشاهده می‌شود عملیات درج و حذف در آرایه به طوربه‌طور متوسط منجر به انتقال نصف عناصر آرایه می‌شود. بنابراین در مواردی که مجموعه عناصر داده‌ای به طوربه‌طور مکرر درحال اضافه و حذف هستند آرایه خطی روش کارآمدی برای ذخیرهٔ داده‌ها نیست.
 
== آرایه‌های شرکت پذیر(انجمنی) ==
خط ۱۲۱:
 
== نمایش چندجمله‌ای‌ها به کمک آرایه ==
همۀ چندجمله‌ای‌ها را می‌توان به کمک آرایه‌ها پیاده‌سازی کرد. روش‌های مختلفی برای این کار وجود دارد. مثلاً می‌توان بزرگترین درجه‌ای که در چندجمله‌ای می‌تواند وجود داشته باشد به عنوان Max درنظر گرفت، درایندر این صورت می‌توان آرایه‌ای تعریف کرد که تعداد سلول‌های ان برابر با Max+1 باشد . اگر درجه چندجمله‌ای را بدانیم می‌توان هر جمله را در آرایه پیاده‌سازی کرد. در واقع [A[i ضریب (X^(n-i است.
 
پس از ذخیره چندجمله‌ای‌ها در داخل آرایه‌ها می‌توان اعمالی مانند جمع چندجمله‌ای و ضرب چندجمله‌ای را انجام داد.
 
روش قبل برای ذخیره‌سازی چندجمله‌ای ممکن است مناسب نباشد برای مثال چندجمله‌ای شما ممکن است x^1000+1 باشد.
روش دیگری نیز برای ذخیره چندجمله‌ای‌ها وجود دارد درایندر این روش از یک آرایه با دو سطر و k ستون استفاده می‌شود. که k تعداد کل جملات تشکیل دهندۀ همۀ چندجمله‌ای‌هاست . سطر اول نشان‌دهندهٔ همۀ ضرایب است و سطر دوم نشان‌دهندهٔ توان متناسب با هر ضریب است.
 
== ماتریس پراکنده یا اسپارس ==
خط ۱۴۹:
== منابع ==
{{پانویس}}
# برنامه سازیبرنامه‌سازی پاسکال ۲ (فنی و حرفه‌ای) گروه تحصیلی کامپیوتری
{{ویکی‌انبار-رده|Array data structure}}
جعفرنژاد قمی، عین‌الله. طراحی الگوریتم‌ها. چاپ ششم، انتشارات علوم رایانه، ۱۳۸۳.