עבור לתוכן
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

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

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

ארכיון

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

efod26

מיון מערך חד ממדי (C)

Recommended Posts

efod26    0

מה הדרך הכי טובה למיין מערך חד ממדי לפי סדר עולה בעזרת מערך עזר,

יש לי את הרעיון אני לא מצליח ליישם אותו..

בבקשה הלפ... :s05:

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
efod26    0

בוקר טוב אחי, יפה שאתה ער בשעה כזאת,

זה הפתרון שלי לפני שקראתי את שלך, יש משו ליעל פה?

double sort (double a[N])
{
int i ,j;
double temp;
for (i = 0; i < N-1; i++)
{
for (j = 0; j < N - i -1; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
שניצל    9

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

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
efod26    0

חשבתי על רעיון שבו אולי הייתי חוסך איטרציות בלולאה, לבנות מערך עזר שלשם יכנס על פעם הערך המינימלי

האם אפש רליישם את זה בצורה יעילה יותר ממיון בועות?

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
שניצל    9

נתתי לך כבר לינק למיון היעיל ביותר.

(יש מיונים שהם יעילים יותר, אבל הם מסתמכים על הנחות מסויימות על המערך)

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

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
MasterDK    0

שניצל שאלה לי אליך: האם מיון ערימה (HEAP SORT) לא אמור להיות יעיל יותר? אני יודע ששניהם זה nlogn אבל אם אני לא טועה מיון ערימה יעיל יותר מבחינת מצב גרוע.

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
MasterDK    0
Quicksort is typically somewhat faster, due to better cache behavior and other factors, but the worst-case running time for quicksort is O(n2), which is unacceptable for large data sets and can be deliberately triggered given enough knowledge of the implementation, creating a security risk. See quicksort for a detailed discussion of this problem, and possible solutions.

Thus, because of the O(n log n) upper bound on heapsort's running time and constant upper bound on its auxiliary storage, embedded systems with real-time constraints or systems concerned with security often use heapsort.

צדקתי.

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים
Zelig    0

הרבה מימושים של std::sort עוברים ל-heapsort כאשר הרקורסיה עמוקה מדי, או ל-insertion sort כאשר N קטן מאוד (נניח 16).

תמיד צריך לזכור שהמיון היעיל ביותר תלוי בסוג הנתונים הממויין. quicksort הוא זוועה על רשימות. אבל לפחות הוא שתי שורות ב-haskell :)

שתף דיון


קישור ישיר להודעה
שתף באתרים אחרים