אלגוריתם חיפוש – הבדלי גרסאות

מתוך ויקיפדיה, האנציקלופדיה החופשית
תוכן שנמחק תוכן שנוסף
כוח גס הוא חיפוש ממצה בסיסי
החיפוש יכול להיות ממצה, או הסתברותי
שורה 1: שורה 1:
ב[[מדעי המחשב]], '''אלגוריתם חיפוש''' הוא [[אלגוריתם]] המשמש לחיפוש נתון נדרש ב[[מבנה נתונים]]. חיפוש הוא פעולה בסיסית בפיתוח [[תוכנה]], למשל לשם אחזור מידע מ[[בסיס נתונים]], ולכן הושקע מאמץ בפיתוח אלגוריתמים יעילים לביצוע משימה זו.
ב[[מדעי המחשב]], '''אלגוריתם חיפוש''' הוא [[אלגוריתם]] המשמש לחיפוש נתון נדרש ב[[מבנה נתונים]]. חיפוש הוא פעולה בסיסית בפיתוח [[תוכנה]], למשל לשם אחזור מידע מ[[בסיס נתונים]], ולכן הושקע מאמץ בפיתוח אלגוריתמים יעילים לביצוע משימה זו. את האלגוריתמים ניתן לחלק לשני סוגים.

==חיפוש ממצה==
חיפוש ממצה הוא חיפוש המאפשר לקבוע שהנתון נמצא במערכת כמפתח לחיפוש. ובמקרה שהוא נמצא, ניתן לקבל את הנתונים שהוא מאנדקס.


החיפוש הבסיסי ביותר הוא חיפוש ב[[כוח גס]] - מעבר על כל הנתונים לפי סדרם, עד למציאת הנתון המבוקש, אם הוא אכן נמצא. מקובל לכנותו חיפוש ממצה בסיסי, או אלגוריתם חיפוש נאיבי. זהו חיפוש בלתי יעיל, וכאשר מספר הנתונים שבהם יש לחפש הוא גדול, החיפוש נמשך זמן רב, במידה בלתי סבירה.
החיפוש הבסיסי ביותר הוא חיפוש ב[[כוח גס]] - מעבר על כל הנתונים לפי סדרם, עד למציאת הנתון המבוקש, אם הוא אכן נמצא. מקובל לכנותו חיפוש ממצה בסיסי, או אלגוריתם חיפוש נאיבי. זהו חיפוש בלתי יעיל, וכאשר מספר הנתונים שבהם יש לחפש הוא גדול, החיפוש נמשך זמן רב, במידה בלתי סבירה.
שורה 10: שורה 13:


לחיפוש בגרפים (כמו עצי החיפוש שהוזכרו לעיל) משמשים [[אלגוריתם חיפוש לעומק]] ו[[אלגוריתם חיפוש לרוחב]].
לחיפוש בגרפים (כמו עצי החיפוש שהוזכרו לעיל) משמשים [[אלגוריתם חיפוש לעומק]] ו[[אלגוריתם חיפוש לרוחב]].

==חיפוש הסתברותי==
בחיפוש כזה ניתן לומר בהסתברות שנקבעה מראש שהנתון אינו מצוי במערכת, או שהמפתח שלו אינו במערכת באותה הסתברות.


==לקריאה נוספת==
==לקריאה נוספת==

גרסה מ־16:16, 8 באפריל 2015

במדעי המחשב, אלגוריתם חיפוש הוא אלגוריתם המשמש לחיפוש נתון נדרש במבנה נתונים. חיפוש הוא פעולה בסיסית בפיתוח תוכנה, למשל לשם אחזור מידע מבסיס נתונים, ולכן הושקע מאמץ בפיתוח אלגוריתמים יעילים לביצוע משימה זו. את האלגוריתמים ניתן לחלק לשני סוגים.

חיפוש ממצה

חיפוש ממצה הוא חיפוש המאפשר לקבוע שהנתון נמצא במערכת כמפתח לחיפוש. ובמקרה שהוא נמצא, ניתן לקבל את הנתונים שהוא מאנדקס.

החיפוש הבסיסי ביותר הוא חיפוש בכוח גס - מעבר על כל הנתונים לפי סדרם, עד למציאת הנתון המבוקש, אם הוא אכן נמצא. מקובל לכנותו חיפוש ממצה בסיסי, או אלגוריתם חיפוש נאיבי. זהו חיפוש בלתי יעיל, וכאשר מספר הנתונים שבהם יש לחפש הוא גדול, החיפוש נמשך זמן רב, במידה בלתי סבירה.

כאשר הנתונים ממוינים, ניתן לשפר משמעותית את החיפוש על ידי שימוש בחיפוש בינארי. הבעיתיות בשיטה זו היא הדרישה שהנתונים יהיו ממוינים מראש, והצורך לשוב ולמיינם בכל פעם שנתון חדש מוכנס למאגר או כשנתון קיים מוצא ממנו.

כדי לאפשר חיפוש מהיר מחד, ולהימנע מן הצורך למיין את הנתונים בכל פעם שחל בהם שינוי מאידך, פותחו מבני נתונים השומרים על הנתונים במצב ממוין.

מבנה נתונים בסיסי המאפשר זאת הוא עץ חיפוש, שהוא מבנה נתונים ממוין המאפשר הכנסה, הוצאה וחיפוש. עצי חיפוש משוכללים יותר כמו עץ אדום שחור ועץ AVL מאפשרים לבצע את הפעולות הללו במהירות (דהינו בסיבוכיות נמוכה).

לחיפוש בגרפים (כמו עצי החיפוש שהוזכרו לעיל) משמשים אלגוריתם חיפוש לעומק ואלגוריתם חיפוש לרוחב.

חיפוש הסתברותי

בחיפוש כזה ניתן לומר בהסתברות שנקבעה מראש שהנתון אינו מצוי במערכת, או שהמפתח שלו אינו במערכת באותה הסתברות.

לקריאה נוספת

ערך זה הוא קצרמר בנושא מדעי המחשב. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.