נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
מדעי המחשב
RSS UnderWarrior Forums : RSS מדעי המחשב
נושא

נושא: שלום יש לי שאלה שאני לא מצילח לפתור אני צ

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 09 March 2006 בשעה 18:50 | IP רשוּם
ציטוט יוסי

שלום

יש לי עבודת בית של 4 שאלות אלגורתמים ואני לא הכי טוב בזה ועכשיו אני לא מצליח לפתור האם מישהוא יוכול לעזור לי לפני יו שבת כי ביום ראשון יש לי מבחן

השאלה1:

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

לדוגמה: עבור הרשימה L=7 2 4 7 1 9 2 7

         הרשימה החדשה תהיה: 9 1 4 2 7

ב)חשב את סיביכויות זמן הריצה של האלגוריתם.

 

שאלה 2:

א)כתוב אלגוריתם איברים-שווים-ברשימות(L1,L2) המקבל שתי רשימות המכילות מספרים שלמיםףעל האלגוריתם להפעיל את האלגוריתם רשימה-בלי-חזרות(L) מהשאלה הקודמת על שתי הרשימות ולהחזיר את מספר האיברים השווים בין שתי הרשימות.

ב)חשב את סיבוכיות האלגוריתם.

 

שאלה 3:

כתוב אלגוריתם כמה-רצפים(L) המקבל רשימה של תווים,על האלגוריתם להחזיר את מספר הופעות הרצף abc.

לדוגמה :עבור הרשימה:L= b a b c r m a b a b c b

האלגוריתם יחזיר 2

הנחה:ברשימה יש לפחות 3 תווים

 

שאלה 4:

א)כתוב אלגוריתם רשימת-מחלקים(L) המקבל רשימה של מספרים ומחזיר "אמת" אם עבור כל איבר ברשימה מופיעים כל המחלקים שלו . ו"שקר" אחרת.

דוגמה: לרשימה מחלקים : L=5 1 10 4 6 12 2 3

ב)חשב את סיביכיות זמן הריצה של האלגוריתם.

אני מקווה שמישהו יענה לי הכי מהר

תודה מראש

 

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 
pitbull
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 14 May 2005
משתמש: מנותק/ת
הודעות: 209
נשלח בתאריך: 09 March 2006 בשעה 21:30 | IP רשוּם
ציטוט pitbull

אני יכתוב לך את הרעיון בשאלה מספר אחד. [אין לי זמן לכתוב אלגוריתם מלא]
אתה מגדיר שני pos
pos1:pos_type;
pos2:pos_type;
את pos1 אתה "שם" על האיבר הראשון של הרשימה, את pos2 אתה שם על האיבר השני של הרשימה.
אתה עושה לולאה "כל עוד pos1 לא שווה סוף רשימה"
בתוך הלולאה אתה שם עוד לולאה "כל עוד pos2 לא שווה סוף רשימה"
בתוך הלולאה הזאת [הפנימית] אתה שם תנאי:
 "אם הערך שנמצא במיקום pos1 שווה לערך במיקום pos2 אזי --> הוצא מהרשימה את האיבר שנמצא במיקום pos2 "
לאחר התנאי אתה מקדם את pos2 .
[סגירת הלולאה הפנימית]
עכשיו בלולאה החיצונית אתה פשוט מקדם את pos1 וסוגר את הלולאה.

מה שקורה שבעצם עבור כל איבר ברשימה, התוכנית תסרוק את כל האיברים.
אז הסיבוכיות היא n בריבוע.

*הערה: בד"כ שאלות על רשימה מאוד קלות, העיקרון בכל התרגילים דומה...
חזרה לתחילת העמוד הצג את כרטיס החבר של pitbull חפש הודעות אחרות של pitbull
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 09 March 2006 בשעה 22:57 | IP רשוּם
ציטוט shoshan

2:
תגדיר פעולה שמחפשת ברשימה - זה יקל עליך.
אז תפעיל את הפעולה כמו שרשום בהוראה.
אז תאפס איזה מונה
ותעבור על כל הרשימה הראשונה ותחפש כל איבר ממנה ברשימה השנייה ואם מצאת תוסיף 1 למונה.

יוצא O של N בריבוע.


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 09 March 2006 בשעה 23:03 | IP רשוּם
ציטוט shoshan

3:
תאפס מונה.
קח 3 מצביעים.
אם הראשון תעבור על כל הרשימה,
אם מצאת A, תשים את המצביע השני על ההבא של הראשון.
אם השני מצביע על B,
תשים את המצביע השלישי על ההבא של השני.
אם השלישי מצביע על C תוסיף אחד למונה.

למה שלושה מצביעים ?!
כי אם באמצע יש לך a a, אם תשתמש במצביע אחד אתה תעבור לאיבר הבא, תראה שהוא לא B ותמשיך במקום לבדוק אם יש אחריו BC.

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 09 March 2006 בשעה 23:09 | IP רשוּם
ציטוט shoshan

4: אין לי דרך יעילה אבל בגלל שאתה אומר שאין לך תשובה אני אתן לך את התשובה הממש לא יעילה הזאת.

יוצאים מנקודת מבט שהרשימה באמת רשימת מחלקים.

תגדיר פעולה שמחפשת ברשימה...
אמת --> TEMP.
עבור כל איבר ברשימה,
    עבור I מ-1 עד השורש של האיבר ברשימה בצע:
       אם האיבר ברשימה מתחלק ב-I אזי:
          אם לא מצא-ברשימה(רשימה, I) אזי:
             שקר --> TEMP.
החזר את הערך של TEMP.

תשנה את זה ככה שאם TMEP הופך לשקר יוצאים מהלולאה...לא היה לי כוח.



סיבוכיות זמן ריצה: O של N בשלישית, שזה בעצם O של N בריבוע...


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
יוסי
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 10 March 2006 בשעה 15:38 | IP רשוּם
ציטוט יוסי

אני מאוד מאוד מאוד מאוד מודה לכם אחים שלי עזרתם לי נורא תודה

עכשיו אני מוכן למבחן ביום ראשון ממש תודה לכם

חזרה לתחילת העמוד הצג את כרטיס החבר של יוסי חפש הודעות אחרות של יוסי בקר בדף הבית של יוסי
 

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

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

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