جابه‌جایی (برنامه‌نویسی رایانه)

در برنامه‌نویسی عمل تعویض دو متغیر به مبادله متقابل مقادیر این دو متغیر گفته می‌شود. در بیشتر زبان‌های برنامه‌نویسی تابع تعویض به صورت توکار تعریف شده است. نحوه انجام تعویض به یکی از شکل‌های زیر می‌تواند باشد:

با استفاده از یک متغیر کمکی

ساده‌ترین و معمول‌ترین روش جهت تعویض مقادیر دو متغیر استفاده از یک متغیر کمکی سوم است.

define swap (x, y)
    temp := x
    x := y
    y := temp

با استفاده از XOR

استفاده از عملگر منطقی Xor برای جا به جایی مقادیر دو متغییر بدون استفاده از متغیر موقت.

در این روش از عملیات بیتی XOR برای تعویض مقادیر دو متغیر عددی استفاده می‌شود.

در شبه کد زیر نحوه جا به جایی مقادیر دو متغیر X و Y آمده است:[1]

X := X XOR Y
Y := Y XOR X
X := X XOR Y

فرض کنید میخواهیم مقادیر و را با استفاده از الگوریتم بالا تعویض کنیم، آنگاه به ازاری مقادیر و چهار حالت داریم:

اگر و آنگاه:

پس در صورتی که و باشند، چون مقادیر یکی هستند، در همه مراحل حاصل و برابر صفر است و پس از جا به جایی با ابتدا تفاوتی وجود ندارد.

اگر و آنگاه:

پس در صورتی که و باشند، با انجام مراحل بالا مقادیر و چون در ابتدا هم یکسان بودند، پس از جابه جایی برابر خواهند بود.

اگر و آنگاه:

پس در صورتی که و باشند، در مرحله اول برابر و در مرحله دوم برابر و در نهایت برابر و برابر خواهد بود.

اگر و آنگاه:

پس در صورتی که و باشند، در مرحله اول برابر و در مرحله دوم برابر و در نهایت برابر و برابر خواهد بود.

و را به ازای مقادیر و بررسی کردیم، با توجه به این که مقدار هر بیت میتواند یا باشد الگوریتم فوق به ازای هر مقداری از و برقرار خواهد بود.

با استفاده از جمع و تفریق

در این روش دو متغیر با جمع و تفریق کردن مقدارهایشان تعویض می‌شوند. از این روش به دلیل اینکه بیشتر برای داده‌های عددی و در شرایط خاص کاربرد دارد، به ندرت استفاده می‌شود.

در شبه کد زیر مقادیر دو متغییر X و Y جا به جا شده.[1]

X := X + Y
Y := X - Y
X := X - Y

منابع

  1. "XOR swap algorithm". Wikipedia. 2020-02-10.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.