ABA


"שאלה על האלגוריתם שלי בJAVA, על BinaryHeap"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15280 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15280
xzoooooom
חבר מתאריך 19.3.02
20316 הודעות
   12:41   14.04.09   
אל הפורום  
  שאלה על האלגוריתם שלי בJAVA, על BinaryHeap  
 
ערכתי לאחרונה בתאריך 14.04.09 בשעה 13:09 בברכה, xzoooooom
 
נתנו לנו לבנות BINARY HEAP שהשורש הוא מקסימום ואחר כך האבות ואז הבנים... עכשיו בניתי אותו והכל
וביקשו מאיתנו לעשות כזה דבר:

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

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

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

ואני לא בידיוק יודע איך לדעת עבור איזה מספר שיוצא מהBinaryHeap
איך בידיוק לדעת מאיזה מערך מקורי הוא הגיע?

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

כלומר אם ממערך מספר 1 הגיע הסיפרה 7 אז במערך האינדס הוא במקום 1
אם הסיפרה 8 הגיע ממערך מספר 3 אז הסיפרה 8 תהיה בתא מס' 3..

הקטע שזה לא נראה לי הכי יעיל בידיוק..
כי אם יש לי נגיד 10 מערכים בגודל 10..
זה כאילו היעילות שלי תהיה ב n^2, האם יש דרך יעילה יותר? תודה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  לא הבנתי את האלגוריתם שלך המת היא, אבל קח בחשבון ldan192  14.04.09 15:42 1
     אפשר לשכוח מהשאלה, הסתדרתי, תודה בכל אופן :] xzoooooom 15.04.09 11:34 2

       
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   15:42   14.04.09   
אל הפורום  
  1. לא הבנתי את האלגוריתם שלך המת היא, אבל קח בחשבון  
בתגובה להודעה מספר 0
 
שבערימת מקסימום (או מינימום) יש 2 תכונות
לאבא בתא ה-i יש 2 בנים בתאים 2i ו-2i+1.
יש לך את הפעולה sift_down בשביל לאזן את הערימה כל פעם מחדש.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
xzoooooom
חבר מתאריך 19.3.02
20316 הודעות
   11:34   15.04.09   
אל הפורום  
  2. אפשר לשכוח מהשאלה, הסתדרתי, תודה בכל אופן :]  
בתגובה להודעה מספר 1
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net