גיבוב קוקייה – הבדלי גרסאות
מ ←פתיח: גִּבּוּב |
|||
שורה 1: | שורה 1: | ||
{{שם|גִּבּוּב קוקייה}} (מ[[אנגלית]]: '''Cuckoo hashing''') הוא שיטה ב[[מדעי המחשב]] ליישוב [[התנגשות (מדעי המחשב)|התנגשויות]] ב[[טבלת גיבוב]]. בשיטה זו, כל איבר ממופה לשני תאים במערך. כאשר מכניסים איבר חדש למערך, בודקים אם אחד מהתאים אליהם האיבר ממופה פנוי. אם כן, ממקמים בו את האיבר החדש. אם שני התאים אליהם האיבר החדש ממופה תפוסים, ממקמים את האיבר החדש באחד מהתאים התפוסים, ומעבירים את האיבר ששכן בתא קודם לכן לתא האלטרנטיבי שלו. |
|||
מקור השם נובע משיטות ה[[קן|קינון]] של זנים מסוימים של ציפור ה[[קוקייה]]. הקוקייה מטילה את ביציה בקניהן של ציפורים אחרות. כאשר גוזל הקוקייה בוקע מן הביצה, הוא דוחף את הביצים או את הגוזלים האחרים מן הקן. |
מקור השם נובע משיטות ה[[קן|קינון]] של זנים מסוימים של ציפור ה[[קוקייה]]. הקוקייה מטילה את ביציה בקניהן של ציפורים אחרות. כאשר גוזל הקוקייה בוקע מן הביצה, הוא דוחף את הביצים או את הגוזלים האחרים מן הקן. |
גרסה מ־13:03, 21 בנובמבר 2016
תבנית:שם (מאנגלית: 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