פורסם 2010 בנובמבר 1615 שנים הייאני בונה תוכנית בJAVA אשר תקרא מילים ותספור אותם ובסוף תוציא קצת סטטיסטיקה כרגע אני מצליח לקרוא מילים מקובץ ולהכניס אותן לתוך TREEMAP ששם יש לKEY זה המילה וVALUE זה מספר המופעים שלה....עכשיו אני צריך לשלוף את המילים ולסדר אותן מה שכיחה לנדירה השאלה איך אני שולף מתוך הMAP את הKEY שלו יש את הVALUE הכי גבוה???KEY מוגדר STRINGVALUE מוגדר INTEGERרעיונות???תיאור של המפהhttp://download.oracle.com/javase/6/docs/api/java/util/TreeMap.html
פורסם 2010 בנובמבר 1615 שנים אתה יכול להכניס את הנתונים במקביל לתור עדיפויות \ ערימה וככה לקבל את המקסימלי בפעולה אחת
פורסם 2010 בנובמבר 1615 שנים מחבר חלק מהתרגיל זה לעבוד רק עם המפה .... אני לא מבין למה היא יודעת למשוך ערך לפי מפתח ולא להיפך ...
פורסם 2010 בנובמבר 1615 שנים חלק מהתרגיל זה לעבוד רק עם המפה .... אני לא רואה דרך לרדת מיעילות ריבועית אם אתה יכול להשתמש רק במפה הנתונה. תעשה פונ שמוצאת את האיבר עם הכי הרבה מופעים (תעשה לולאה על ה keySet של ה -map ותשווה את ה values.) ואז תבנה לולאה שמוצאת את האיבר המקסימלי (ע"י הפונ) ומוציאה אותו מה map עד שה map ריק. אם לעומת זאת הכוונה שאתה יכול להשתמש בעוד TreeMap (אבל לא מבנה נתונים אחר) אז ניתן לרדת ל n log n. (אם רלוונטי ואתה לא מסתדר אז תגיד). אני לא מבין למה היא יודעת למשוך ערך לפי מפתח ולא להיפך ... כי מבנה נתונים מהסוג הזה מאכסן את המידע שהוא שומר לפי ה keys ולא ה values. ניתן לממש חיפוש לפי ה values אבל ישנן שתי בעיות:א. יעילות: מציאת איבר לפי ה value תהיה בזמן לינארי למספר האיברים. ב. כפילויות של values: צריך לטפל במקרה בו יש כפילות של values וכיצד אתה מגדיר סדר במקרה כזה. באופן עקרוני, אם אתה צריך שליפה לפי values ואתה לא תלמיד/סטודנט אז אתה צריך להשתמש במבנה נתונים אחר.
פורסם 2010 בנובמבר 1715 שנים מחבר לצערי אני עדיין סטודנטהתפשרתי על סיבוכיות ריבועית כל פעם רץ על הכל כדי להוציא את המקס' ....תודה לכל העוזרים
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.