מעבר לתוכן

שאלה קצרה בנושא לולאות while


women

הודעות מומלצות

x ו-y יציינו שני אינדקסים שיצביעו על מקום מסוים במערך, כאשר x יהיה תמיד לפני y. אפשר להבין את זה מכך שx נקבע ל-0 ו-y נקבע לn-1, וכן מכך שהתנאי בwhile הגדול הוא שx<y.

ה-while הפנימי פועל כל עוד שארית החלוקה ב-z היא 0, כלומר כל עוד האיבר מתחלק ב-z. אז כל עוד האיבר מתחלק בz ללא שארית,  מסתכלים על האיבר הבא.

באופן דומה, בשורה הבאה, ככל שהאיבר שהפעם משאיר שארית בחלוקה בz, נסתכל על האיבר הקודם (האינדקסים x,y יתקרבו אחד לשני).

לאחר שנתקלנו באיבר שלא מתחלק ב-z מצד שמאל (ע"י X) ובאיבר שמתחלק ב-z מצד ימין (ע"י Y), שתי הלולאות הקטנות הסתיימו ונבצע החלפה בין האיברים.

למשל, הצעד הראשון שנעשה על b הוא הבא:

הפעם z=3 ולכן נדבר על שארית חלוקה ב-3.

0 1 2 3 4 5 6 7 8 9

0 1 2 3 4 5 6 7 8 9

0 9 2 3 4 5 6 7 8 1

0 9 2 3 4 5 6 7 8 1

0 9 2 3 4 5 6 7 8 1

0 9 2 3 4 5 6 7 8 1

0 9 6 3 4 5 2 7 8 1

.

.

.

כאשר כל שורה מציינת שינוי במערך, המודגש הוא המיקום של X והקו התחתון הוא המיקום של Y.

בין שורה 1 ל-2, X מתקדם. Y לא מתקדם כי 9 כבר מתחלק ב-3 ואז מתבצעת החלפה (שורה 3). לאחר מכן, X מתקדם עד ל-2 שאינו מתחלק ב-3, וY מתקדם עד ל-6 שכן מתחלק ב-3. לאחר מכן ישנה החלפה בין 6 ל-2.

וכן הלאה.

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

הצטרפות לשיח

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

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...