ABA


"עזרה בתרגיל של מערכים.. בדיקה ביעלות מסוימת"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10259 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10259
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק
   23:07   07.02.11   
אל הפורום  
  עזרה בתרגיל של מערכים.. בדיקה ביעלות מסוימת  
 
   ערכתי לאחרונה בתאריך 07.02.11 בשעה 23:11 בברכה, eminem
 
יש לי תרגיל כזה,
השאלה פה מתייחסת לתשובה במילים ולא קשורה לשפת תכנות מסוימת אלא אלוגריתמיקה

בהינתן מערך A של מספרים שלמים נגדיר מושג של היפוך אם
i<j ושניהם במסגרת האינדיקסים של המערך וגם האיבר באינדקס הנמוך יותר גדול מהאינדקס הגבוה
אז מצב זה נקרא היפוך


יתכן שמערך מכיל כמה היפוכים, לדוגמא מערך

7,1,10,12,3
(משמאל לימין)

מכיל 4 היפוכים 7,1 7,3 10,3 12,3

ומערך
5,4,3,2,1 מכיל 10 היפוכים

להסביר איך בעזרת (100nlog(n
פעולות ניתן לחשב את כמות ההיפוכים של המערך הנתון עם n איברים
נא לשים לב כי כמות ההיפוכים יכולה להיות n(n-1)/2
כלומר אי אפשר להשוות את כל הזוגות של המספרים כי זה יקח יותר פעולות ממה שדרוש בשאלה


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


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אממ akoka2 09.02.11 20:21 1
     קודם כל תודה רבה eminem 10.02.11 00:14 2

       
akoka2

   20:21   09.02.11   
אל הפורום  
  1. אממ  
בתגובה להודעה מספר 0
 
   אני הייתי עושה מיון עם Quicksort (בזמן המיון הייתי עושה filter למספרים שמופיעים פעמיים, עכשיו על כול מספר שמופיע פעמיים החישוב הוא די פשוט,

קח את הindex של אותו איבר כול ההיפוכים שלו יהיו הindex שלו פחות מספר הפעמים שהוא מופיע.

עכשיו אחרי שהמערך ממויין מספר ההיפוכים הם בדיוק כמו הנוסחא שלך:

n(n-1)/2 (תוסיף לזה את מה שספרת בזמן המיון, והופ קיבלת את התוצאה בn log n במקרה הכי טוב, במקרה הגרוע n^2 יש מצב שיש פתרון טוב יותר, לא עולה לי עכשיו).

הייתי כותב לך קוד אבל אני עייף מעבודה:( חח


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק
   00:14   10.02.11   
אל הפורום  
  2. קודם כל תודה רבה  
בתגובה להודעה מספר 1
 
   לא אמורים לכתוב קוד לתרגיל
אבל גם אם כן ממש לא רציתי שתכתוב קוד בשבילי
רק רציתי את הדרך כי לא היה לי מושג


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net