View Single Post
ישן 19-03-07, 11:45   # 2
eLad
Fatal Error
 
eLad's Avatar
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: localhost
גיל: 39
הודעות: 1,968

eLad לא מחובר  

1. אתה מכיר שיטה יותר טובה מאשר ללעבור על כל המערך?
שני דברים שאני יכול לחשוב עליהם:
א. למיין את המאגר - מהסיבות המובנות, אני מניח
ב. אפשר להוסיף תנאי עצירה כשמוצאים exact match כי אחרת תמיד תהיה האופציה שהערך האחרון במאגר הוא מה שאתה מחפש.


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

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

בתוך הלולאה נשארה לך רק בדיקה 1.

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

אל תשכח לנקות בסוף את הערך שהוספת..
__________________
eLad
  Reply With Quote