keep largest k

kikkler

New member
keep largest k

אני צריך מבנה נתונים שמתחזק את k האיברים הגדולים ביותר. לצורך העניין יספיקו 2 פעולות - הוסף(x) - אם מס' האיברים קטן מ-k פשוט מוסיף את x, אחרת מחליף אותו עם האיבר הקטן ביותר הוצא - מוציא את האיבר הגדול ביותר המחשבה הראשונית הייתה להשתמש בעץ חיפוש בינארי - log(k) לשתי הפעולות. יש רעיונות טובים יותר? אם יש למישהו במקרה קוד מקור בשפה כלשהי של משהו כזה אני אשמח להפניה
 

kikkler

New member
ועוד חידוד

בהוסף, כמובן בהנחה ש-x גדול מהמינימלי, אחרת לא עושים כלום
 

yuvalmadar

New member
../images/Emo45.gif

שתיים, למעשה. ערימת מינימום וערימת מקסימום כך שהאיברים המתאימים מקושרים אלה לאלה.
 
למעלה