מיון מערך של אובייקטים ג'אווה - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

מיון מערך של אובייקטים ג'אווה


Yehudaa

Recommended Posts

יש לי מערך של אובייקטים של 1000 מקומות [10][100]

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

האחת מילה בעיברית והשניה הפרוש לה באנגלית

ואני רוצה למיין את המערך לפי האלף בית העברי לדוגמא :

אב קטן מ אבא

אבא קטן מאמא

אנציקלופדיה קטן מהמילה בגד

נראה לי לולאת for מקוננת תיהיה טובה איך אני עושה את זה ? תודה .

קישור לתוכן
שתף באתרים אחרים

השאלה ששאלת היא לא כזו שאפשר לענות עליה בשתי שורות, יש הרבה דרכים למיין מערך (מיון בינארי, מיון מהיר וכדו'),תגגל על מיונים.

ותסתכל על הפונקציות של STRING, אתה יכול להשתמש ב-String.compare(String) כדי לדעת איזו מחרוזת באה לפני ואיזו אחרי.

קישור לתוכן
שתף באתרים אחרים

אז כמו ש-fatman ענה, תגגל על מיונים (יש אלגוריתמים בסיסיים בויקיפדיה).

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

וזה אכן ידרוש לולאת for מקוננת.

קישור לתוכן
שתף באתרים אחרים

השאלה ששאלת היא לא כזו שאפשר לענות עליה בשתי שורות, יש הרבה דרכים למיין מערך (מיון בינארי, מיון מהיר וכדו'),תגגל על מיונים.

ותסתכל על הפונקציות של STRING, אתה יכול להשתמש ב-String.compare(String) כדי לדעת איזו מחרוזת באה לפני ואיזו אחרי.

אם אתה מקבל 0 הם שווים, שלילי או חיובי, תבדוק במסמכולוגיה.

קישור לתוכן
שתף באתרים אחרים

שמעת על קוד ASCII?

לכל אות (CHAR) יש ערך מספרי, תיקח את האות הראשונה מכל מחרוזת ותהפוך אותה ל-int (ע"י new Intege) ן- Integer.intValue, וככה אתה יכול להשוות מי גדול ממי, ואם האות הראשונה בשתי המחרוזות שווה אז תיקח את השניה וכן הלאה.

קישור לתוכן
שתף באתרים אחרים

טוב אחרי כמה נגיחות בקירות .... הצלחתי לצור מתודה שמחזירה 1 אם המילה קטנה , 0 אם היא גדולה .

 public int whoIsSmaller(Dictionary other)
{
int x , i=0 ;
if (this._hebW.length() <other._engW.length())
x=this._hebW.length() ;
else
x=other._engW.length() ;


for ( i= 0 ; i< x ;i++ ) {
if (this._hebW.charAt(i) <other._engW.charAt(i))
return 1;
else if (this._hebW.charAt(i) >other._engW.charAt(i))
return 0;
}
if (x==i) {
if (this._hebW.length() <other._engW.length())
return 1;
else
return 0 ;
}
return 0;
}

קישור לתוכן
שתף באתרים אחרים

קימיים שני אלגורתמים ידועים מאד לצורך זה

1.SELECTION SORT

2.BUBBLE SORT

בריאשון אתה רץ על המערך ומוצא את האיבר המינימלי

ושם אותו במקום בריאשון אחר כך אתה רץ על כל המערך חוץ מהמקום הריאשון

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

האיבר האחרון.

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

קח משתנה זמני שים בו את האיבר הריאשון.תשווה אותו עם המקום השני.אם מה שיש במקום

השני קטן יותר אז תכניס אותו למשתנה הזמני במקומו וככה תמשיך להשוות את המשתנה הזמני מול כל האיברים במערך

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

רצים על המערך בודקים ריאשון אם שני ,אם ריאשון גדול יותר אז תחיליף אותם ,אם ריאשון קטן יותר אז תבדוק שני עם שלישי וכך הלאה

אחר כל רצים עליו שוב עד המקום N-1 וכולי.

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...