المصفوفات

من موسوعة حسوب
< Algorithms
مراجعة 12:47، 10 يونيو 2019 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:المصفوفات}}</noinclude> المصفوفات عبارة عن مجموعة من العناصر المخزّنة في مواقع متجا...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث


المصفوفات عبارة عن مجموعة من العناصر المخزّنة في مواقع متجاورة في الذاكرة، والهدف من المصفوفات هو تخزين عناصر متعددة من النوع ذاته في مكان واحد، وبهذا يسهل حساب موقع كل عنصر في المصفوفة وذلك بإضافة قيمة إزاحة معينة إلى قيمة أساسية تمثّل موقع عنصر المصفوفة الأول في الذاكرة (عادة ما يرمز له بواسطة اسم المصفوفة).

ولتبسيط الصورة أكثر، يمكن تخيل المصفوفة على أنّها سلّم يقف واحد من أصدقائك على كل درجة من درجاته، وهكذا يمكنك معرفة موقع أيّ صديق بمعرفة رقم الدرجة التي يقف عليها.

ولكن يجب الانتباه إلى أنّ موقع الفهرس اللاحق يعتمد على نوع البيانات المستخدمة.


يمكن القول أنّ الصورة في أعلاه تمثّل نظرة علويّة للسلّم الذي تقف في بدايته، ويمكن التعرّف على كل عنصر بواسطة الفهرس الخاص به في المصفوفة (بنفس الطريقة التي يمكنك بواسطتها التعرّف على أصدقائك في المثال السابق).

أنواع الفهرسة في المصفوفات:

لفهرسة المصفوفات ثلاثة أنواع:

  • (الفهرسة التي تبدأ من الصفر): يأخذ العنصر الأول في المصفوفة الرقم 0.
  • (الفهرسة التي تبدأ من واحد): يأخذ العنصر الأول في المصفوفة الرقم 1.
  • (الفهرسة التي تبدأ من n): يمكن اختيار العدد الذي سيأخذه العنصر الأول في المصفوفة. وعادة ما تسمح لغات البرمجة التي تعتمد هذا النوع من الفهرسة باستخدام الأرقام السالبة إضافة إلى أنواع البيانات العددية scalar مثل التعدادات enumerations أو المحارف characters.

فوائد استخدام المصفوفات

  • تتيح المصفوفات الوصول إلى العناصر بطريقة عشوائية، وهذا يسرّع عملية الوصول إلى العناصر بالاعتماد على مواقعها.
  • تتمتّع المصفوفات بمواقع تخزين مؤقتة cache locality أفضل وهو أمر قد يؤدي إلى إحداث فارق كبير في أداء المصفوفات.

السلسلة النصية string هي مصفوفة من المحارف.

عيوب المصفوفات

إن ما يعيب المصفوفات هو:

  1. أنّ حجم المصفوفات ثابت، وهذا يعني وجوب معرفة الحد الأقصى لعدد العناصر في المصفوفة قبل تعريفها، إلى جانب أنّ الذاكرة المحجوزة للمصفوفة تكون مساوية للحد الأقصى بصرف النظر عن عدد عناصر المصفوفة الحقيقي، وعادة ما لا يتم الوصول إلى الحد الأقصى عمليًا.
  2. أن عملية إضافة عنصر جديد إلى المصفوفة مكلفة من ناحية الوقت وذلك لأن هذه العملية تتطلب إيجاد مكان للعنصر الجديد، وهذا بدوره يتطلب إزاحة العناصر عن مواقعها الأصلية.

المصدر

  • صفحة Introduction to Arrays في توثيق بنى المعطيات في موقع GeeksforGeeks