סוגי אלגוריתמי חיפוש

אמא ואבא מנשקים ילדה על שטיח

משפחה משתמשת במחשב נייד.

קרדיט תמונה: altrendo images/Stockbyte/Getty Images

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

חיפוש לינארי

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

סרטון היום

חיפוש בינארי

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

חיפוש עצים

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

אלגוריתם גנטי

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