ABA


"עזרה בחידה"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #22005 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 22005
מיקי
חבר מתאריך 16.6.17
2 הודעות
   19:14   16.06.17   
אל הפורום  
  עזרה בחידה  
 
   חבר שאל אותי את החידה הבאה-
נתונים n ברגים ו- n אומים, לכל בורג מבין ה-n קיים אום אחד ויחיד שמתאים לו, לא ידוע כל בורג לאיזה אום הוא מתאים.
הפעולה היחידה שמותר לעשות בין בורג i לאום j היא לנסות להבריג את האום ה- j על הבורג ה- i, פעולה זו לוקחת זמן קבוע ובסופה יודעים האם האום ה- j מתאים לבורג ה- i, האם הוא גדול מדי או האם הוא קטן מדי.
תנו אלגוריתם יעיל ככל שתוכלו שמוצא את ההתאמה בין הברגים לאומים.


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

  האשכול     מחבר     תאריך כתיבה     מספר  
  הדרך הכי בנאלית: Bar  16.06.17 20:43 1

       
Bar  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.3.02
24027 הודעות, 7 פידבק
   20:43   16.06.17   
אל הפורום  
  1. הדרך הכי בנאלית:  
בתגובה להודעה מספר 0
 
   לבחור אום אחד באקראי ולנסות להתאים אותו לכל אחד מ-n הברגים. במקרה הגרוע נמצא התאמה רק בבורג באחרון.
לאחר מכן, לקחת אום שרירותי אחריו ולנסות להתאים אותו לכל אחד מ-n-1 הברגים הנותרים. שוב, במקרה הכי גרוע נמצא התאמה גם רק בבורג האחרון...
ככה עד אשר התאמנו את כולם
זמן הריצה:

c*(n+n-1+n-2+n-3+...+1)
O(n^2)

ע״י המידע הנוסף של הגדלים, ניתן להשתמש כאן בווריאציה של quicksort ע״מ להגיע לזמן ריצה ממוצע של O(n*log2n).
קח בחשבון שגם עבור quicksort, המקרה הגרוע ביותר עדיין מאלץ את האלגוריתם לעבוד ב-O(n^2) פעולות, אבל לרוב הוא יעבוד ב-O(n*log2n)


He who makes a beast out of himself,
gets rid of the pain of being a man.


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

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

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



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