تقنية Hashing
هي عملية تحويل المدخلات (مثل سلسلة من النصوص أو الأرقام) إلى قيمة فريدة تُسمى hash، وهي عادةً تمثل سلسلة ثابتة من الأرقام والحروف. هذه التقنية تُستخدم بشكل واسع في هياكل البيانات مثل القواميس (في بايثون)، قواعد البيانات، والتشفير.
كيف تعمل تقنية Hashing؟
عند استخدام تقنية Hashing، يتم تمرير قيمة (مثل المفتاح في القاموس) عبر دالة تجزئة (hash function)، والتي تقوم بتحويل هذه القيمة إلى رقم (يسمى hash value). يُستخدم هذا الرقم لتحديد موقع تخزين العنصر المرتبط بهذه القيمة في الذاكرة. الهدف من ذلك هو تمكين الوصول السريع إلى البيانات.
مثال بسيط:
إذا كان لديك قاموس يحتوي على عناصر مثل:
my_dict = {'name': 'Ahmed', 'age': 25}
عند محاولة الوصول إلى القيمة المرتبطة بالمفتاح 'name'، يتم تمرير 'name' عبر دالة تجزئة، والتي تحوّل هذا المفتاح إلى قيمة رقمية تُستخدم لتحديد موقع تخزين القيمة "Ahmed" في الذاكرة. وبذلك يتم الوصول إليها بسرعة كبيرة.
فوائد Hashing:
- السرعة والكفاءة: باستخدام دالة تجزئة، يمكن الوصول إلى العناصر المخزنة في القواميس بسرعة كبيرة بدون الحاجة إلى البحث التسلسلي عن كل عنصر.
- التنظيم: يُستخدم hashing لتنظيم البيانات بشكل يسمح بالتخزين في مواقع محددة في الذاكرة، مما يجعل العمليات مثل الإضافة والحذف والبحث أسرع.
- التطبيقات المتعددة: تُستخدم دوال التجزئة في مجالات متعددة، مثل:
- القواميس في البرمجة: للوصول السريع إلى القيم باستخدام المفاتيح.
- التشفير: لتأمين البيانات والمعلومات الحساسة.
- البحث في قواعد البيانات: لتسريع عمليات البحث والوصول إلى البيانات.
مثال على دالة تجزئة:
في بايثون، يمكنك استخدام الدالة hash() للحصول على القيمة التجزئة لأي عنصر قابل للتجزئة:
value = "Ahmed"
hash_value = hash(value)
print(hash_value)
التحديات المحتملة:
تصادم التجزئة (Hash Collision): قد تحدث مشكلة "التصادم" عندما تقوم دالة التجزئة بإرجاع نفس القيمة التجزئة لمفتاحين مختلفين. يُستخدم طرق لحل التصادم مثل "السلاسل (chaining)" أو "الفتح المُزدوج (open addressing)" للتعامل مع هذه الحالات.
خلاصة:
تقنية Hashing هي أداة قوية تُستخدم لتنظيم البيانات والوصول إليها بشكل فعال وسريع، وهي أساسية في تصميم العديد من هياكل البيانات مثل القواميس وقواعد البيانات.
في الدرس القدم بإذن الله سأقدم لكم شرحاً مفصلاً عن التحديات المحتملة في تقنية Hashing💕

تعليقات
إرسال تعليق