본문 바로가기

Java

[ Java ] Swap 알고리즘 구현

public static void main(String[] args) 
{
	try
	{
		swapAlgo(51, 81);
	} 
	catch (Exception e)
	{
		e.printStackTrace();
	}
}

// 스왑 알고리즘
// 메모리 공간을 절약하기 위해 만들어진 알고리즘이나, 
// 성능상으로는 비슷하거나 컴파일러에 따라 더 떨어질 수 있다.
public static void swapAlgo(int target1, int target2) throws Exception
{
	// target1 = target1, target2 = target2
	System.out.println("target1 : " + target1 + " , target2 : " + target2);
	
	System.out.println("==============================");
	
	target1 = target1 ^ target2;
	
	// target1 = target1 ^ target2, target2 = target2 
	System.out.println("target1 : " + target1 + " , target2 : " + target2);
	
	target2 = target1 ^ target2;
	 
	// target1 = target1 ^ target2, [ target2 = target1 ^ target2 ^ target2 => target1 ^ 0 => target1
	System.out.println("target1 : " + target1 + " , target2 : " + target2);
	
	System.out.println("==============================");
	
	target1 = target1 ^ target2;
	
	// target1 = target1 ^ target2 ^ target1 => 0 ^ target2 -> target2, target2 = target1
	System.out.println("target1 : " + target1 + " , target2 : " + target2);
}

변수 2개 만으로 값을 변경할 수 있음

'Java' 카테고리의 다른 글

[ Java ] CSV 읽기 기능 구현  (0) 2021.10.25
[ Java ] Crontab 기능 구현  (0) 2021.05.12