רשימת דילוגים
רשימת דילוגים | |||
---|---|---|---|
יצירה | |||
הומצא ב: | 1989 | ||
ממציא: | ויליאם פְּיוּ | ||
סיבוכיות מקום וזמן | |||
| |||
זיכרון: |
| ||
חיפוש: |
| ||
הכנסה: |
| ||
הוצאה: |
|
במדעי המחשב, רשימת דילוגים (skip list), הוא מבנה נתונים הממיין רשימת איברים באמצעות שימוש במספר רשימות מקושרות. שיטה זו מאפשרת ביצוע חיפוש בצורה יעילה יחסית.
תיאור
רשימת דילוגים בנויה משכבות. השכבה התחתונה ביותר היא רשימה מקושרת רגילה, בה מופיעים כל האיברים במבנה הנתונים הנתון. האיברים מסודרים מהחוליה הקטנה ביותר לחוליה הגדולה ביותר. כל שכבה מוכלת בשכבה מתחתיה. ההסתברות שחוליה כלשהי, השייכת לרשימה בשכבה , תימצא גם ברשימה בשכבה היא 0.5. ככלל, סיכויו של איבר כלשהו להימצא בשכבה הוא , כשהשכבה התחתונה ביותר (אשר מכילה את כל האיברים) מיוצגת על ידי . כל איבר ברשימה מחזיק ארבעה מצביעים: לאיבר שאחריו ברשימה, לאיבר שלפניו, לאיבר הזהה ברשימה מתחתיו ולאיבר הזהה ברשימה מעליו (אם קיים).
חיפוש אחר איבר כלשהו מתחיל מהאיבר הראשון בשכבה העליונה ביותר, וממשיך לעבור על כל איברי שכבה זו, עד שנמצא איבר גדול או שווה לאיבר שאנו מחפשים. אם איבר זה שווה ערך לאיבר שאנו מחפשים- מצאנו את יעד החיפוש. אם הגענו לאיבר גדול מהאיבר שאנו מחפשים, נחזור לאיבר הקודם, ונבצע חיפוש זהה החל מאיבר זה ברמה אחת תחתונה יותר. תהליך החיפוש צורך זמן ריצה של במקרה הגרוע ביותר, אך בלבד במקרה הממוצע.
היסטוריה
רשימת דילוגים הומצאה בשנת 1989 על ידי ויליאם פיו, פרופסור למדעי המחשב באוניברסיטת מרילנד. פיו סיפר כי ניסה למצוא תחליף ראוי לעצי חיפוש בינארים מאוזנים. רשימות דילוגים צורכות זמן ריצה אסימפטוטי זהה לעצים אלו, צורכות זיכרון מועט יותר, ולטענת פיו נוחות וקלות יותר לבנייה ושימוש.
קישורים חיצוניים
- רשימות מקושרות- אלטרנטיבה לעצי חיפוש מאוזנים - המסמך המקורי מאת פרופסור ויליאם פיו.
- הדגמה מונפשת לפעולות רשימת דילוגים.
מבני נתונים | ||
---|---|---|
מבנים מופשטים | רשימה • מחסנית • קבוצה • רב קבוצה • תור • דו-תור • תור עדיפויות • מילון • מחרוזת • איחוד קבוצות זרות | |
מימושים לינאריים | מערך • מערך משונן • טבלת גיבוב • רשימה מקושרת • רשימת דילוגים • חוצץ | |
גרפים ועצים | ערימה (בינארית • בינומית • פיבונאצ'י) • עץ חיפוש (עץ אדום שחור • עץ 2-3 • עץ 2-3-4) • עץ סיפות • עץ B • עץ +B • עץ AVL • עץ Splay • עץ BSP • עץ kd • עץ R • טריי X מהיר • טריי y מהיר | |
הסתברותיים | פילטר בלום |