גיבוב קוקייה – הבדלי גרסאות
Matanyabot (שיחה | תרומות) מ בוט החלפות: זיכרון |
מ בוט: מעביר קישורי בינויקי לויקינתונים - d:q1584911 |
||
שורה 15: | שורה 15: | ||
{{קצרמר|מחשבים}} |
{{קצרמר|מחשבים}} |
||
[[קטגוריה:מבני נתונים]] |
[[קטגוריה:מבני נתונים]] |
||
[[en:Cuckoo hashing]] |
|||
[[cs:Kukaččí hašování]] |
|||
[[de:Kuckucks-Hashing]] |
|||
[[lt:Gegutės maiša]] |
גרסה מ־08:17, 27 בפברואר 2013
גיבוב קוקייה (מאנגלית: Cuckoo hashing) הוא שיטה במדעי המחשב ליישוב התנגשויות בטבלת גיבוב. בשיטה זו, כל איבר ממופה לשני תאים במערך. כאשר מכניסים איבר חדש למערך, בודקים אם אחד מהתאים אליהם האיבר ממופה פנוי. אם כן, ממקמים בו את האיבר החדש. אם שני התאים אליהם האיבר החדש ממופה תפוסים, ממקמים את האיבר החדש באחד מהתאים התפוסים, ומעבירים את האיבר ששכן בתא קודם לכן לתא האלטרנטיבי שלו.
מקור השם נובע משיטות הקינון של זנים מסוימים של ציפור הקוקייה. הקוקייה מטילה את ביציה בקניהן של ציפורים אחרות. כאשר גוזל הקוקייה בוקע מן הביצה, הוא דוחף את הביצים או את הגוזלים האחרים מן הקן.
השיטה תוארה לראשונה על ידי רסמוס פאף (Rasmus Pagh) ופלמינג פריש רודלר (Flemming Friche Rodler) בשנת 2001.
הכללות
ווריאציה אחת של גיבוב קוקייה ממפה כל איבר ליותר משני תאים. ווריאציה אחרת מאפשרת לכל תא להכיל יותר מאיבר אחד. ווריאציות אלו מגדילות את ניצולת הזיכרון על חשבון הגדלת הזמן הנדרש להכניס איבר חדש ולחפש איבר קיים.
קישורים חיצוניים
- Static cuckoo hashtable generator for C/C++
- Cuckoo hashtable written in Java
- Generic Cuckoo hashmap in Java