آرین سليمان زاده
  • الرئيسية
  • المدونة
  • البودكاست
  • الفيديوهات
  • تواصل
العربيةArabic
DeutschGerman
EnglishEnglish
فارسیPersian
한국어Korean
中文Chinese
اللوحة•تواصل سريع

Languages

Choose your interface locale

ar

العربية

Arabic

de

Deutsch

German

en

English

English

fa

فارسی

Persian

ko

한국어

Korean

zh

中文

Chinese

احجز موعداً

أرسل رسالة قصيرة — سأرد في أقرب وقت ممكن.

LinkedInاستجابة سريعة
الرئيسية/المقالات/ما هي خوارزمية Cuckoo Hashing وكيف تعمل؟
Algorithmsمقال

ما هي خوارزمية Cuckoo Hashing وكيف تعمل؟

Cuckoo Hashing هي تقنية فعالة لمعالجة التصادمات في جداول التجزئة باستخدام أكثر من موقع محتمل لكل مفتاح، مما يسمح بعمليات بحث سريعة بزمن ثابت.

٢١ أغسطس ٢٠٢٦5 دقيقة قراءة1 المشاهدات
#Cuckoo Hashing#Hash Table#Hashing#Data Structures#Algorithms

Arian Soleimanzadeh

Software Engineer & Researcher

رسم توضيحي لخوارزمية Cuckoo Hashing وإزاحة المفاتيح داخل جدول التجزئة

Arian Soleimanzadeh

ذكاء اصطناعي · برمجة · منتج

بحث + هندسة
في هذه الصفحة
الفكرة الأساسيةالبحثمشكلة الدوراتRehashingالتعقيد الزمنيالمزاياالعيوبالاستخداماتالخلاصة

Cuckoo Hashing هي تقنية لمعالجة مشكلة التصادم Collision داخل Hash Table. تعتمد الفكرة على استخدام دالتي Hash أو أكثر، بحيث يمتلك كل مفتاح عدة مواقع محتملة.

إذا كان الموقع الأول فارغاً، يتم تخزين المفتاح مباشرة. أما إذا كان مشغولاً، فيمكن للمفتاح الجديد إزاحة المفتاح الموجود وإجباره على الانتقال إلى موقعه البديل.

الفكرة الأساسية

لكل مفتاح x موقعان محتملان مثلاً:

Code
12
h1(x)
h2(x)

عند إدخال مفتاح جديد، يتم فحص الموقع الأول. إذا كان مشغولاً، تتم إزاحة العنصر الموجود ونقله إلى موقعه الثاني.

Code
1234567
A يدخل الموقع
↓
الموقع يحتوي على B
↓
A يستبدل B
↓
B ينتقل إلى موقع بديل

البحث

للبحث عن مفتاح لا نحتاج إلى فحص الجدول بالكامل، بل نفحص المواقع المحتملة فقط:

Code
12
h1(key)
h2(key)

ولهذا تكون عملية البحث عادةً:

Code
1
O(1)

مشكلة الدورات

قد تؤدي عمليات الإزاحة المتكررة إلى دورة:

Code
1
A → B → C → A → B → C

لذلك تحدد التطبيقات العملية عدداً أقصى من عمليات الإزاحة. إذا تجاوزت العملية هذا الحد، يتم تنفيذ Rehashing.

Rehashing

قد يتضمن Rehashing إنشاء جدول أكبر، اختيار دوال Hash جديدة وإعادة إدخال العناصر الموجودة.

التعقيد الزمني

| العملية | التعقيد المعتاد | |---|---| | Search | O(1) | | Delete | O(1) | | Insert | Expected O(1) | | Rehash | O(n) |

المزايا

  • سرعة عالية جداً في البحث
  • عدد محدود من المواقع التي يجب فحصها
  • عدم الحاجة إلى Linked List لكل Bucket
  • مناسب للأنظمة التي تنفذ عمليات Lookup كثيرة

العيوب

  • عملية الإدخال أكثر تعقيداً
  • إمكانية حدوث Cycle
  • الحاجة أحياناً إلى Rehashing
  • الاعتماد الكبير على جودة دوال Hash
  • انخفاض كفاءة الإدخال عند ارتفاع Load Factor

الاستخدامات

يمكن استخدام الأفكار المرتبطة بـ Cuckoo Hashing في هياكل البيانات داخل الذاكرة، أنظمة Cache، الشبكات والأنظمة التي تحتاج إلى عمليات Lookup سريعة.

كما أن هذه التقنية مرتبطة ببنية أخرى تسمى Cuckoo Filter، وهي بنية احتمالية لاختبار عضوية العناصر ويمكن مقارنتها مع Bloom Filter.

الخلاصة

Cuckoo Hashing تقدم طريقة ذكية لمعالجة التصادمات في Hash Table. بدلاً من الاحتفاظ بسلسلة طويلة من العناصر، يمتلك كل مفتاح عدداً صغيراً من المواقع المحتملة، ويمكن إزاحة العناصر عند حدوث التصادم.

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

في هذه الصفحة
الفكرة الأساسيةالبحثمشكلة الدوراتRehashingالتعقيد الزمنيالمزاياالعيوبالاستخداماتالخلاصة

تفاصيل المقال

بيانات النشر ووقت القراءة وعدد المشاهدات.

تاريخ النشر

٢١ أغسطس ٢٠٢٦

آخر تحديث

٢١ أغسطس ٢٠٢٦

وقت القراءة

5 دقيقة قراءة

المشاهدات

1

الكاتب

Arian Soleimanzadeh

المقال التالي

تنفيذ خوارزمية Kosaraju باستخدام JavaScript وTypeScript

آرین سليمان زاده

معرض أعمال شخصي يركز على هندسة الويب الحديثة، وأنظمة الواجهات، ومنتجات الذكاء الاصطناعي العملية — كود نظيف، وتصميم نقي.

روابط سريعة

  • نبذة
  • المدونة
  • تواصل

تواصل

  • soleimanzadeh.a.work@gmail.com
  • soleimanzadeh.uni@gmail.com

التوفر: أيام الأسبوع

عادةً يتم الرد خلال 24 ساعة.

النشرة البريدية

احصل على تحديثات حول المقالات، والمشاريع، والإصدارات الجديدة.

© 2026 ariansoleimanzadeh.site — جميع الحقوق محفوظة.

لينكدإن