PDA

View Full Version : החלפת 2 ערכים של משתנים אחד בשני בלי שימוש במשתנה נוסף


IgalSt
11-10-11, 13:56
היי,

חיפשתי דרך להחליף ערכים של שני משתנים אחד בשני (לאו דווקא ערכים נומריים) בלי להשתמש במשתנה temp לצורך הפעולה.

ובכן ישנה דרך מעניינת לעשות את זה תוך שימוש ב-XOR Swap Algorithm (http://en.wikipedia.org/wiki/XOR_swap_algorithm):

x = x XOR y
y = x XOR y
x = x XOR y

Erez | TrustMedia.co.il
11-10-11, 14:17
ברובי זה עוד יותר פשוט:
x, y = y, x

IgalSt
11-10-11, 15:07
ארז,
קראתי לפני כמה שבועות מאמר מאוד מעניין על פסיקים ב-JS ונראה לי אפשר לעשות ב-JS משהו דומה ל- x,y=y,x

בכל אופן, גרמת לי לחפור עוד קצת בזה.
מצאתי את השאלה הזאת (http://stackoverflow.com/questions/756750/swap-the-values-of-two-variables-without-using-third-variable) ב-SO עם סיכום דיי יפה שלה שיטות הקיימות לפי שפות:
(חלק מהרשימה)

PHP
list($a, $b) = array($b, $a);

JavaScript 1.7
[a, b] = [b, a]

Python/Ruby
a, b = b, a

Numbers only:
a = a + b
b = a - b
a = a - b

Xinxy
11-10-11, 17:18
שיטה ידועה ומגניבה
עוד שיטה:
x=x+y
y=x-y
x=x-y

עריכה: עכשיו קלטתי שפירסמת את זה למעלה

IgalSt
11-10-11, 18:11
שיטה ידועה ומגניבה
עוד שיטה:
x=x+y
y=x-y
x=x-y

עריכה: עכשיו קלטתי שפירסמת את זה למעלה
והיא טובה רק לערכים נומריים.