עבור לתוכן

צריך עזרה ב JAVA ....

Featured Replies

פורסם

היי

אני בונה תוכנית בJAVA אשר תקרא מילים ותספור אותם ובסוף תוציא קצת סטטיסטיקה

כרגע אני מצליח לקרוא מילים מקובץ ולהכניס אותן לתוך TREEMAP ששם יש לKEY זה המילה וVALUE זה מספר המופעים שלה....

עכשיו אני צריך לשלוף את המילים ולסדר אותן מה שכיחה לנדירה השאלה איך אני שולף מתוך הMAP את הKEY שלו יש את הVALUE הכי גבוה???

KEY מוגדר STRING

VALUE מוגדר INTEGER

רעיונות???

תיאור של המפה

http://download.oracle.com/javase/6/docs/api/java/util/TreeMap.html

פורסם
  • מחבר

מה הכוונה איך אני רץ על כל ה KEY למינהם???

פורסם

אתה יכול להכניס את הנתונים במקביל לתור עדיפויות \ ערימה וככה לקבל את המקסימלי בפעולה אחת

פורסם
  • מחבר

חלק מהתרגיל זה לעבוד רק עם המפה :)....

אני לא מבין למה היא יודעת למשוך ערך לפי מפתח ולא להיפך ...

פורסם

חלק מהתרגיל זה לעבוד רק עם המפה :)....

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

תעשה פונ שמוצאת את האיבר עם הכי הרבה מופעים (תעשה לולאה על ה keySet של ה -map ותשווה את ה values.)

ואז תבנה לולאה שמוצאת את האיבר המקסימלי (ע"י הפונ) ומוציאה אותו מה map עד שה map ריק.

אם לעומת זאת הכוונה שאתה יכול להשתמש בעוד TreeMap (אבל לא מבנה נתונים אחר) אז ניתן לרדת ל n log n. (אם רלוונטי ואתה לא מסתדר אז תגיד).

אני לא מבין למה היא יודעת למשוך ערך לפי מפתח ולא להיפך ...
כי מבנה נתונים מהסוג הזה מאכסן את המידע שהוא שומר לפי ה keys ולא ה values. ניתן לממש חיפוש לפי ה values אבל ישנן שתי בעיות:

א. יעילות: מציאת איבר לפי ה value תהיה בזמן לינארי למספר האיברים.

ב. כפילויות של values: צריך לטפל במקרה בו יש כפילות של values וכיצד אתה מגדיר סדר במקרה כזה.

באופן עקרוני, אם אתה צריך שליפה לפי values ואתה לא תלמיד/סטודנט :) אז אתה צריך להשתמש במבנה נתונים אחר.

פורסם
  • מחבר

לצערי אני עדיין סטודנט

התפשרתי על סיבוכיות ריבועית כל פעם רץ על הכל כדי להוציא את המקס' ....

תודה לכל העוזרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים