جابهجایی (برنامهنویسی رایانه)
در برنامهنویسی عمل تعویض دو متغیر به مبادله متقابل مقادیر این دو متغیر گفته میشود. در بیشتر زبانهای برنامهنویسی تابع تعویض به صورت توکار تعریف شده است. نحوه انجام تعویض به یکی از شکلهای زیر میتواند باشد:
با استفاده از یک متغیر کمکی
[ویرایش]سادهترین و معمولترین روش جهت تعویض مقادیر دو متغیر استفاده از یک متغیر کمکی سوم است.
define swap (x, y)
temp := x
x := y
y := temp
با استفاده از XOR
[ویرایش]در این روش از عملیات بیتی XOR برای تعویض مقادیر دو متغیر عددی استفاده میشود.
در شبه کد زیر نحوه جا به جایی مقادیر دو متغیر X و Y آمده است:[۱]
X := X XOR Y
Y := Y XOR X
X := X XOR Y
فرض کنید میخواهیم مقادیر و را با استفاده از الگوریتم بالا تعویض کنیم، آنگاه به ازاری مقادیر و چهار حالت داریم:
اگر و آنگاه:
پس در صورتی که و باشند، چون مقادیر یکی هستند، در همه مراحل حاصل و برابر صفر است و پس از جا به جایی با ابتدا تفاوتی وجود ندارد.
اگر و آنگاه:
پس در صورتی که و باشند، با انجام مراحل بالا مقادیر و چون در ابتدا هم یکسان بودند، پس از جابه جایی برابر خواهند بود.
اگر و آنگاه:
پس در صورتی که و باشند، در مرحله اول برابر و در مرحله دوم برابر و در نهایت برابر و برابر خواهد بود.
اگر و آنگاه:
پس در صورتی که و باشند، در مرحله اول برابر و در مرحله دوم برابر و در نهایت برابر و برابر خواهد بود.
و را به ازای مقادیر و بررسی کردیم، با توجه به این که مقدار هر بیت میتواند یا باشد الگوریتم فوق به ازای هر مقداری از و برقرار خواهد بود.
با استفاده از جمع و تفریق
[ویرایش]در این روش دو متغیر با جمع و تفریق کردن مقدارهایشان تعویض میشوند. از این روش به دلیل اینکه بیشتر برای دادههای عددی و در شرایط خاص کاربرد دارد، به ندرت استفاده میشود.
در شبه کد زیر مقادیر دو متغیر X و Y جا به جا شده.[۱]
X := X + Y
Y := X - Y
X := X - Y
منابع
[ویرایش]- ↑ ۱٫۰ ۱٫۱ "XOR swap algorithm". Wikipedia (به انگلیسی). 2020-02-10.
- مشارکتکنندگان ویکیپدیا. «Swap (computer programming)». در دانشنامهٔ ویکیپدیای انگلیسی، بازبینیشده در ۹ ژوئن ۲۰۱۷.