1. אתה מכיר שיטה יותר טובה מאשר ללעבור על כל המערך?
שני דברים שאני יכול לחשוב עליהם:
א. למיין את המאגר - מהסיבות המובנות, אני מניח
ב. אפשר להוסיף תנאי עצירה כשמוצאים exact match כי אחרת תמיד תהיה האופציה שהערך האחרון במאגר הוא מה שאתה מחפש.
בדר"כ כשמבצעים חיפוש בודקים שני דברים בלולאה,
1. האם מצאנו את הערך שחיפשנו?
2. האם הגענו לסוף המאגר?
ובטריק נחמד שמשתמשים בו בחיפוש במאגרי מידע גדולים, של מילארדי רשומות, אפשר לוותר על בדיקה 2 ע"י הערך לסוף המאגר. חסכת לך סביבות ה 50% זמן ריצה של אלגוריתם חיפוש לינארי כזה.
בתוך הלולאה נשארה לך רק בדיקה 1.
אתה תצטרך רק פעם אחת לבדוק האם הגעת לסוף הרשימה (כי הערך תמיד יימצא), אם הגעת לסוף הרשימה אז סימן שלא נמצא הערך שחיפשת. אם לא הגעת לסוף הרשימה ויש בידך ערך סימן שהערך הזה נמצא במאגר.
אל תשכח לנקות בסוף את הערך שהוספת..
__________________
eLad
|