שאלה שמקננת אצלי כבר הרבה זמן...

zorkd

New member
שאלה שמקננת אצלי כבר הרבה זמן...

שלום, יש לי שאלה שמקננת אצלי בראש כבר הרבה מאוד זמן, ומשום מה אני לא מצליח למצוא את הפיתרון.. אני אודה מאוד (מאוד) למי שיוכל לכוון אותי... אני צריך למצוא במערך מספרים ממויין בסדר עולה, אם קיימים בו שני מספרים שסכומם שווה לערך נתון (שיכול להיות מוזן, לצורך העניין ע"י משתמש)... הצלחתי למצוא אלגוריתם שיפתור את הבעיה בסיבוכיות (O(n log n - פשוט מחסיר את הערך אותו אני מחפש בכל אחד מתאי המערך ומחפש בחיפוש בינארי את ההפרש שביניהם.. הבעיה היא שאני צריך למצוא אלגוריתם שיעשה זאת בסיבוכיות של (O(n.... חשבתי על כיוון מסויים: אם אני מחפש את המספר 10 למשל, אז אני יחסר את הנתונים במערך ב-10/2.. כך שאני ממיר את הבעיה בכך שאני צריך למצוא שני מספרים במערך החדש שחיבורם יסתכם ב-0.. חשבתי שהנה אני קרוב לפיתרון, אבל אני עדיין לא מצליח למצוא את האלגוריתם שיעשה את זה.... אני אשמח לכל הכוונה... אלישי.
 

vinney

Well-known member
שאלה לי אלייך

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

zorkd

New member
אחי, אני לא יודע אם לשמוח או לבכות..

טוב, נראה לי שאני הולך למרר לי בבכי בצד... עזרת לי מאוד
, תודה...
 
למעלה