تخطَّ إلى المحتوى

🧮 شرح هياكل البيانات والخوارزميات

جداول التجزئة (Hash Tables)

الدرس 10 من 25· ⏱ 1 دقائق قراءة

الفكرة

تخزين أزواج مفتاح-قيمة مع وصول شبه فوري O(1) — تُعرف بـ dict في بايثون وHashMap في جافا وobject/Map في جافاسكربت.

ages = {}
ages["براء"] = 25      # إدراج O(1)
ages["براء"]           # بحث O(1)
"سارة" in ages         # فحص O(1)

كيف تعمل؟

دالة التجزئة (hash function) تحوّل المفتاح إلى فهرس في مصفوفة داخلية، فيُخزَّن/يُسترجَع مباشرةً.

التصادمات (Collisions)

عندما ينتج مفتاحان نفس الفهرس. تُعالَج بـ:

  • التسلسل (Chaining): قائمة في كل خانة.
  • العنونة المفتوحة (Open addressing): البحث عن خانة فارغة تالية.

التعقيد

  • متوسط: O(1) للإدراج/البحث/الحذف.
  • أسوأ حالة (تصادمات كثيرة): O(n).

تطبيقات

  • العدّ والتجميع، إزالة التكرار، الذاكرة المؤقّتة (caching)، الفهرسة.

🎯 التالي: التعاوديّة (Recursion).

هل كان هذا الدرس مفيدًا؟