שאלה במבני נתונים

aron12

New member
שאלה במבני נתונים

נתון מערך בגודל n . רוצים אלגוריתם המוצא שלשה של איברים במערך x.y.z. כך ש x+y=z. אם אין שלשה כזאת יוחזר Null. מה דעתכם?
 

A12351

New member
הצעה

אני לא בטוח אם זה נכון במובן של יעילות (לפי איך שמבקשים) או אם זה נכון באופן 100 אחוז אבל חשבתי על משהו: קודם כל תמיין את המערך,(במקום ה 0 הכי קטן ,במקום האחרון המקסימלי), עכשיו שמור פלג מסוים שמאותחל ל- 0 כמו כן תזדקק ל3 אינדקסים : אחד בהתחלה Aהשני במקום האחרוןB והשלישי לפניC אחרון,תתחיל בלולאה מהסוף שבודקת האם במקום ה A פלוס במקום הC של המערך שווה למקום ה B , אם לא בדוק האם במקום ה A פלוס במקום ה C קטן מ B, אם כן תן לפלג שלך 1 וזה יסמן שצריך להתחיל איטרציה חדשה שבה B מוזז מקום אחד אחרוה וכן גם C כמו כן חייבים גם לקדם את את A ולעשות שוב ושוב את מה שכתבתי מקודם(שוב B וC יהיו בעמדות שהיו כמו בהתחלה....) הערה: כמו שאתה רואה, זה לא ממש יעיל אבל זה די טוב:) אתה יכול ליעל אם תשתמש באלגו שהצעתי ורק תוסיף עוד בדיקות של מקרים מסויימים שאמצעותם ניתן למנוע מעבר מיותר.............
 
למעלה